目录
- 1. 各依赖版本选择
- 2. 核心功能与组件
- 3. 创建项目
- 3.1 注意事项
- 3.2 依赖
1. 各依赖版本选择
- SpringCloud: 2023.0.1
- SpringBoot: 3.2.4。参考Spring Cloud Train Reference Documentation选择版本
- SpringCloud Alibaba: 2023.0.1.0*: 参考Spring Cloud Alibaba选择版本。同时可以看到每个SpringCloud Alibaba组件的版本选择
-
Java: Java17 ~ Java22
-
Spring: 6.1.5+
-
Maven: 3.6.3+。Java、Spring和Maven的版本选择参考SpringBoot System Requirements
-
Mysql: 8.0+(建议)
2. 核心功能与组件
- 服务注册与发现:
- Alibaba Nacos: 注册中心为AP模型,也可以配置为CP模型;配置中心为CP模型。推荐直接使用这个
- Consul: go开发的,CP模型
- 服务调用和负载均衡:
- LoadBalancer
- OpenFeign: 内部使用了LoadBalancer。已经被弃用,改用HTTP Interface(基于WebClient不支持负载均衡,需要结合LoadBalancer)
- 分布式事务:
- Alibaba Seata: 国内用的多,推荐直接使用这个
- LCN: 用的人少
- Hmily: 用的人少
- 服务熔断和降级:
- Alibaba Sentinel: 国内用的多,推荐直接使用这个
- Circuit Breaker: 一种规范的抽象API。实现该API的常用组件有Resilience4J、Alibaba Sentinel
- 服务链路追踪:
- Micrometer Tracing: Spring Cloud原生的链路追踪组件,如果想用原生的,推荐使用这个
- Skywalking: 不是Spring Cloud全家桶里面的。如果不想用原生的,推荐直接使用这个
- 服务网关: Gateway
- 分布式配置管理:
- Alibaba Nacos: 使用简单、部署方便、性能较高,能够实现基本的配置管理,提供的控制台也非常简洁。但权限方面控制粒度较粗,且没有审核机制。公司前期推荐直接使用这个
- Consul
- Apollo: 不是Spring Cloud全家桶里面的。配置管理流程上比较完善,有相应配置的发布审核、权限管理等。但读写性能没有Alibaba Nacos好;存在学习成本;且部署较为复杂,需要3个模块同时工作,部署一套生产高可用集群至少需要7个节点
3. 创建项目
3.1 注意事项
- Settings -> Editor -> File Encodings -> Project Encoding和Default encoding for properties files选择UTF-8
- Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors -> 选择Enable annotation processing
3.2 依赖
父工程添加dependencyManagement依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2023.0.1</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2023.0.1.0</version><type>pom</type><scope>import</scope></dependency>