概念
分布式:一个大型用用被拆分为很多小应用,分布部署在各个机器
服务注册:启动服务之后,会在注册中心注册,调用服务得时候会在注册中心发现
服务熔断:A调用B失败到一定比阈值后,不再重复调用造成服务雪崩
RPC:HTTP+JSON 远程调用
分布式事务:跨多个数据库得事务操作,确保要么全部成功,要么全部失败,确保数据一致性
专业概念 | 解决方案 |
微服务 | SpringBoot |
注册中心/配置中心 | SpringCloudAlibaba Nacos |
网关 | SpringCloud Getway |
RPC | SpringCloud OpenFeign |
服务熔断 | SpringCloudAlibaba Sentinel |
分布式事务 | SpringCloudAlibaba Seata |
项目搭建
参考版本
项目结构示意图
1,先创建父项目,管理版本
修改pom文件
<!-- 修改spring-boot-starter-parent 版本 3.3.4 -->
<packaging>pom</packaging>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<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>
2,在创建service
添加nacos和openfeign的依赖
<!--确保父项目是demo-->
<packaging>pom</packaging>
<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>
3,在创建service下得子项目
确保在service添加的依赖,在子项目都有