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>
相关推荐
开longlong了吗?8 小时前
Luan Takeaway——大模型驱动的智能外卖管理系统( Spring Cloud、Langchain4j )
后端·spring·spring cloud·langchain
以后换名字9 小时前
delphi对接API的优势
微服务·架构·api·软件架构调整
开longlong了吗?9 小时前
Luan Takeaway System:基于Spring Boot + Spring Cloud的外卖业务系统
spring boot·后端·spring cloud
江不清丶10 小时前
Kafka消息幂等性深度解析:从重复消费到Exactly-Once的终极方案
分布式·kafka
喵叔哟10 小时前
0.【.NET10 实战--孢子记账--产品智能化】--目录
人工智能·微服务·.net
做一个AK梦11 小时前
RedisForValueService.setIfAbsent()
java·分布式
阿里云云原生11 小时前
深大智能:基于阿里云 MSE 实现云原生高可用微服务架构,释放运维人力拥抱 AI 时代
微服务
元Y亨H12 小时前
RuoYi-Cloud-Vue 架构全解析:微服务+前后端分离
java·微服务
元Y亨H12 小时前
Spring Cloud 微服务整合 Vue 前端:架构设计与核心原理
后端·spring cloud
sunxunyong13 小时前
spark History Server 重启失败
大数据·分布式·spark