SpringCloud从入门到上天:分布式和微服务基础

一:核心内容介绍

1:核心主干

2:分布式配套

日志系统+指标监控+链路追踪+消息处理

3:服务架构演变图

二:基础架构设计

以车险承保为例,大致模块功能如下:

历史询价、真实下单、险种计算、验车、核保、支付、承保等。

1:单体架构

单体架构优缺点:

优点:开发 / 部署 / 运维简单、本地事务简单
缺点:代码耦合严重、项目臃肿、不抗高并发、单点故障风险高

2:集群架构

优势:抗并发量显著提升。

缺点:

1:模块升级需要升级全部

2:引入新模块语言+技术栈都受限制,项目十分臃肿。

3:分布式和微服务

以上模块拆分成多个模块,多个模块之间独立部署。随之数据库也进行拆分。

优点:

1:独立部署、数据隔离、语言无关。完全自治。

2:

三:创建微服务项目

1:环境准备

2:项目工程结构图

3:项目构建

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.4</version>
        <relativePath/>
    </parent>


    <packaging>pom</packaging>
    <modules>
        <module>services</module>
    </modules>


    <groupId>com.dashu</groupId>
    <artifactId>springcloud</artifactId>
    <version>v1.1</version>
    <name>springcloud</name>
    <description>springcloud</description>

    <properties>
        <maven.compiler.source>21</maven.compiler.source>
        <maven.compiler.target>21</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!--配置CLoud版本和Alibaba的版本-->
        <spring-cloud.version>2023.0.3</spring-cloud.version>
        <spring-cloud-alibaba.version>2023.0.3.2</spring-cloud-alibaba.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.dashu</groupId>
        <artifactId>springcloud</artifactId>
        <version>v1.1</version>
    </parent>
    <packaging>pom</packaging>
    <modules>
        <module>service-product</module>
        <module>service-order</module>
    </modules>

    <artifactId>services</artifactId>


    <properties>
        <maven.compiler.source>21</maven.compiler.source>
        <maven.compiler.target>21</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!--服务发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <!--远程调用-->
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>

</project>

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.dashu</groupId>
        <artifactId>services</artifactId>
        <version>v1.1</version>
    </parent>

    <artifactId>service-order</artifactId>

    <properties>
        <maven.compiler.source>21</maven.compiler.source>
        <maven.compiler.target>21</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

</project>

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.dashu</groupId>
        <artifactId>services</artifactId>
        <version>v1.1</version>
    </parent>

    <artifactId>service-product</artifactId>

    <properties>
        <maven.compiler.source>21</maven.compiler.source>
        <maven.compiler.target>21</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

</project>
相关推荐
星辰_mya3 分钟前
消息队列遇到Producer发送慢
分布式·kafka
知识即是力量ol2 小时前
微服务架构:从入门到进阶完全指南
java·spring cloud·微服务·nacos·架构·gateway·feign
Java水解3 小时前
【Spring Cloud】优雅实现远程调用-OpenFeign
后端·spring cloud
Remember_9934 小时前
SpringCloud:Nacos注册中心
java·开发语言·后端·算法·spring·spring cloud·list
lhxsir4 小时前
kafka数据异常记录
分布式·kafka
江西理工大学小杨6 小时前
高性能 C++ 社交平台1:微服务架构设计
开发语言·c++·微服务
J_liaty7 小时前
Spring Cloud 微服务面试高频题
spring cloud·微服务·面试
笨蛋不要掉眼泪7 小时前
Spring Cloud Gateway 核心篇:深入解析过滤器(Filter)机制与实战
java·服务器·网络·后端·微服务·gateway
笨蛋不要掉眼泪7 小时前
Spring Cloud Gateway 扩展:全局跨域配置
java·分布式·微服务·架构·gateway
正在走向自律8 小时前
高并发场景下一卡通系统数据库架构设计与实践
数据库·分布式·一卡通系统