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>
相关推荐
mysuking9 小时前
springboot与springcloud对应版本
java·spring boot·spring cloud
一个有温度的技术博主11 小时前
Redis AOF持久化:用“记账”的方式守护数据安全
redis·分布式·缓存
2402_8813193015 小时前
引入 Redis 分布式锁解决并发脏写 (Dirty Write)-AI模拟面试的构建rag部分
redis·分布式·面试
better_liang15 小时前
每日Java面试场景题知识点之-分布式事务
java·微服务·seata·分布式事务·一致性·saga·tcc
她说..16 小时前
Java 注解核心面试题
java·spring boot·spring·spring cloud·自定义注解
蒸蒸yyyyzwd17 小时前
检索系统学习笔记
分布式·学习
鬼先生_sir18 小时前
SpringCloud-Nacos
spring cloud·nacos·java面试
一个有温度的技术博主19 小时前
告别“竹篮打水”:Redis单点瓶颈与分布式缓存架构全解析
redis·分布式·缓存
观无19 小时前
微服务下的跨域问题
微服务·云原生·架构
殷紫川19 小时前
吃透 MinIO:从底层架构到全场景文件上传下载实战,一篇搞定企业级对象存储
分布式·后端