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>
相关推荐
上海锟联科技7 小时前
DAS 系统 250MSPS 是否足够?——来自上海锟联科技的专业解析
分布式·科技·分布式光纤传感·光频域反射·das
java干货7 小时前
<span class=“js_title_inner“>微服务:把一个简单的问题,拆成 100 个网络问题</span>
微服务·云原生·架构
那就学有所成吧(˵¯͒¯͒˵)11 小时前
大数据项目(一):Hadoop 云网盘管理系统开发实践
大数据·hadoop·分布式
爱吃山竹的大肚肚15 小时前
微服务间通过Feign传输文件,处理MultipartFile类型
java·spring boot·后端·spring cloud·微服务
徐先生 @_@|||16 小时前
Spark DataFrame常见的Transformation和Actions详解
大数据·分布式·spark
eso198317 小时前
如何确保程序化广告系统中微服务架构的高可用性和可扩展性?
微服务·云原生·架构
Gofarlic_oms117 小时前
通过Kisssoft API接口实现许可证管理自动化集成
大数据·运维·人工智能·分布式·架构·自动化
凯子坚持 c18 小时前
C++基于微服务脚手架的视频点播系统---客户端(1)
开发语言·c++·微服务
走遍西兰花.jpg18 小时前
spark配置
大数据·分布式·spark