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>
相关推荐
梵得儿SHI4 小时前
(第二篇)Spring AI 架构设计与优化:可观察性体系,打造全链路可视化的 AI 运维方案
人工智能·微服务·grafana·prometheus·监控·可观察性·spring ai
大G的笔记本6 小时前
分布式事务
分布式
weixin_419658316 小时前
RabbitMQ 的高级特性
java·分布式·rabbitmq
_F_y7 小时前
仿RabbitMQ实现消息队列-服务端核心模块实现(1)
分布式·rabbitmq
喜欢流萤吖~9 小时前
消息队列:微服务的异步通信枢纽
微服务·架构
.柒宇.9 小时前
RabbitMQ入门教程
分布式·rabbitmq
AI木马人9 小时前
11.【AI系统微服务架构实战】如何从单体系统升级到微服务?(避免系统崩溃的完整方案)
人工智能·微服务·架构
蓝眸少年CY9 小时前
(第十五篇)spring cloud之Sentinel实现熔断与限流
数据库·spring cloud·sentinel
代码漫谈10 小时前
RabbitMQ 单节点部署指南
分布式·消息队列·rabbitmq
huipeng92610 小时前
GateWay使用详解
java·spring boot·spring cloud·微服务·gateway