Spring Cloud 各版本说明(持续更新)

Spring Boot

Spring Boot 2 版本

截止 2022 年 9 月 22 日,Spring Boot 的最新版本为 2.7.3,最新的版本信息可以查阅这个网站来获取: Spring Boot 2.0 官方发布日志

Spring Boot 3 版本

截止 2024 年 8 月 6 日,Spring Boot 的最新版本为 3.3.2,最新的版本信息可以查阅这个网站来获取: Spring Boot 3.0 官方发布日志

特别注意

Spring Boot 3 要求最低使用 JDK 17+,最高支持 JDK 19。

Spring Cloud

Spring Cloud 版本

截止 2024 年 8 月 6 日,Spring Cloud 的最新版本为 2023.0.3,最新的版本信息可以查阅以下网站来获取:

特别注意

截止 2024 年 8 月 6 日,官网 写着 Spring Cloud Dalston、Edgware、Finchley、Greenwich、2020.0 (aka Ilford)、2021.0 (aka Jubilee) 和 2022.0 (aka Kilburn) 版本都已达到生命周期结束状态,不再有官方的技术支持。

Spring Boot 的版本对应关系

Spring Cloud VersionSpring Boot Version
2021.0.x aka Jubilee2.6.x, 2.7.x (Starting with 2021.0.3)
2020.0.x aka Ilford2.4.x, 2.5.x (Starting with 2020.0.3)
Hoxton2.2.x, 2.3.x (Starting with SR5)
Greenwich2.1.x
Finchley2.0.x
Edgware1.5.x
Dalston1.5.x

Spring Cloud Alibaba

Spring Cloud Alibaba 版本

截止 2024 年 8 月 6 日,Spring Cloud Alibaba 的最新版本为 2023.0.1.2,最新的版本信息可以查阅以下网站来获取:

Spring Cloud Alibaba 分支

由于 Spring Boot 3.0、Spring Boot 2.7 ~ 2.4 和 2.4 以下版本之间变化较大,目前企业级客户老项目相关 Spring Boot 版本仍停留在 Spring Boot 2.4 以下,为了同时满足存量用户和新用户不同需求,社区以 Spring Boot 3.0 和 2.4 分别为分界线,同时维护 2022.x、2021.x、2.2.x 三个分支迭代。如果不想跨分支升级,如需使用新特性,请升级为对应分支的新版本。为了规避相关构建过程中的依赖冲突问题,建议可以通过 云原生应用脚手架 进行项目创建。

2022.x 分支

适配 Spring Boot 3.0、Spring Cloud 2022.x 版本及以上的 Spring Cloud Alibaba 版本按从新到旧排列如下表(最新版本用 * 标记)。特别注意,该分支的 Spring Cloud Alibaba 版本命名方式进行了调整,未来将对应 Spring Cloud 版本,前三位为 Spring Cloud 版本,最后一位为扩展版本,比如适配 Spring Cloud 2022.0.0 版本对应的 Spring Cloud Alibaba 第一个版本为 2022.0.0.0,第个二版本为 2022.0.0.1,依此类推。

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version
2022.0.0.0*Spring Cloud 2022.0.03.0.2
2022.0.0.0-RC2Spring Cloud 2022.0.03.0.2
2022.0.0.0-RC1Spring Cloud 2022.0.03.0.0

Spring Cloud Alibaba 更多版本的对应关系请看以下说明

2021.x 分支

适配 Spring Boot 2.4、Spring Cloud 2021.x 版本及以上的 Spring Cloud Alibaba 版本按从新到旧排列如下表(最新版本用 * 标记):

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version
2021.0.5.0*Spring Cloud 2021.0.52.6.13
2021.0.4.0Spring Cloud 2021.0.42.6.11
2021.0.1.0Spring Cloud 2021.0.12.6.3
2021.1Spring Cloud 2020.0.12.4.2

2.2.x 分支

适配 Spring Boot 为 2.4,Spring Cloud Hoxton 版本及以下的 Spring Cloud Alibaba 版本按从新到旧排列如下表(最新版本用 * 标记):

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version
2.2.10-RC1*Spring Cloud Hoxton.SR122.3.12.RELEASE
2.2.9.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE
2.2.8.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE
2.2.7.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE
2.2.6.RELEASESpring Cloud Hoxton.SR92.3.2.RELEASE
2.2.1.RELEASESpring Cloud Hoxton.SR32.2.5.RELEASE
2.2.0.RELEASESpring Cloud Hoxton.RELEASE2.2.X.RELEASE
2.1.4.RELEASESpring Cloud Greenwich.SR62.1.13.RELEASE
2.1.2.RELEASESpring Cloud Greenwich2.1.X.RELEASE
2.0.4.RELEASE(停止维护,建议升级)Spring Cloud Finchley2.0.X.RELEASE
1.5.1.RELEASE(停止维护,建议升级)Spring Cloud Edgware1.5.X.RELEASE

各组件之间的版本对应关系

每个 Spring Cloud Alibaba 版本及其自身所适配的各组件对应版本如下表所示。特别注意,Spring Cloud Dubbo 从 2021.0.1.0 起已被移除出主干,不再随主干演进。

Spring Cloud Alibaba VersionSentinel VersionNacos VersionRocketMQ VersionDubbo VersionSeata Version
2022.0.0.01.8.62.2.14.9.4~1.7.0
2022.0.0.0-RC21.8.62.2.14.9.4~1.7.0-native-rc2
2021.0.5.01.8.62.2.04.9.4~1.6.1
2.2.10-RC11.8.62.2.04.9.4~1.6.1
2022.0.0.0-RC11.8.62.2.1-RC4.9.4~1.6.1
2.2.9.RELEASE1.8.52.1.04.9.4~1.5.2
2021.0.4.01.8.52.0.44.9.4~1.5.2
2.2.8.RELEASE1.8.42.1.04.9.3~1.5.1
2021.0.1.01.8.31.4.24.9.2~1.4.2
2.2.7.RELEASE1.8.12.0.34.6.12.7.131.3.0
2.2.6.RELEASE1.8.11.4.24.4.02.7.81.3.0
2021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE1.8.01.4.14.4.02.7.81.3.0
2.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE1.8.01.3.34.4.02.7.81.3.0
2.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE1.7.11.2.14.4.02.7.61.2.0
2.2.0.RELEASE1.7.11.1.44.4.02.7.4.11.0.0
2.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE1.7.01.1.44.4.02.7.30.9.0
2.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE1.6.31.1.14.4.02.7.30.7.1

Netflix 各组件替代方案

已停更的组件

Netflix 公司在 2018 年前后宣布其核心组件 Archaius、Hystrix、Ribbon、Zuul 等均进入维护状态。同在 2018 年,Spring Cloud 在其 Roadmap 里就宣布将要终结的一些库 / 版本,其中最重要的就是指 Spring Cloud Netflix 项目进入维护模式,然后计划在 2020 年完全移除。对于 Netflix 的产品,Spring Cloud 只保留了其 Eureka,其他组件全部移除,并给出了相应的替代产品。

Netflix OSS 被 Spring Cloud 移除的原因

日常更新版本没有什么大惊小怪的,但是 Spring Cloud 2020.0.0 版本却正式开启了 Spring Cloud Netflix 体系的终结进程。Netflix 公司是目前微服务落地中最成功的公司,它开源了诸如 Eureka、Hystrix、Zuul、Feign、Ribbon 等等广大开发者所知微服务套件,统称为 Netflix OSS。在当时 Netflix OSS 成为微服务组件上事实的标准,但是微服务兴起不久,也就是在 2018 年前后 Netflix 公司宣布其核心组件 Eureka、Hystrix、Ribbon、Zuul 等进入维护状态,不再进行新特性开发,只支持修复 BUG。这直接影响了 Spring Cloud 项目的发展路线,Spring 官方不得不采取了应对措施。在 2019 年的 SpringOne 大会中,Spring Cloud 宣布 Spring Cloud Netflix 项目进入维护模式,并在 2020 年移除相关的 Netflix OSS 组件。

替代方案概览

停更组件替换组件
ZuulSpring Cloud Gateway
EurekaNacos、Consul
RibbonSpring Cloud Loadbalancer
ArchaiusSpring Cloud Config、Nacos、Consul
HystrixSentinel、Resilience4J
Hystrix Dashboard / TurbineSentinel、Micrometer + Monitoring System

替代方案介绍

Zuul 替代方案

Netflix 虽然已经在 2018 年 5 月开源了 Zuul 2.x,但由于 Zuul 2.x 在 Spring Cloud Gateway 孵化之前一直跳票发布,而且 Spring Cloud Gateway 目前已经孵化成功,相较于 Zuul 1.x 在功能以及性能上都有明显的提升。Spring 官方推荐使用 Spring Cloud Gateway 替代 Zuul 1.x,因此在 Spring Boot 2.0 以上版本中,并没有对 Zuul 2.0 以上最新高性能版本进行集成,仍然使用 Zuul 1.x 非 Reactor 模式(基于 Servlet 2.5 阻塞架构)的旧版本。

Ribbon 替代方案

Spring Cloud OpenFeign 在 Hoxton.M2 RELEASED 版本之后弃用了 Ribbon,使用 Spring Cloud Loadbalancer 作为客户端的负载均衡组件。从 Spring Cloud 2020 版本开始,Spring Cloud 完全弃用了 Ribbon,使用 Spring Cloud Loadbalancer 作为客户端的负载均衡组件。

Hystrix 替代方案

Netflix Hystrix 是 Spring Cloud 中最早支持的一种容错方案,在 2018 年 11 月 20 日之后官方已经停止维护,最后一个正式版本为 1.5.18。在 Spring Cloud Greenwich 版中,Spring 官方推荐使用 Resilience4J 替代 Hystrix,也可以选择使用 Spring Cloud Alibaba Sentinel。

最佳组件版本实践

截止 2024 年 01 月,推荐的各个版本组合如下:

组件版本
JDKJDK 17+
Spring Boot3.2.0
Spring Cloud2023.0.0
Spring Cloud Alibaba2022.0.0.0
Maven3.9+
MySQL8.0+

主流技术演进历史

2018 年

2020 年

2023 年

2024 年

实用开发工具推荐

阿里巴巴云原生应用脚手架

阿里巴巴云原生应用脚手架 是一个源自于 Spring Initializr 构建的云原生应用脚手架项目,项目本身包含以下模块:

  • initializer-generator:脚手架生成项目模块,在其中 io.spring.start.site 目录下引用了部分 start.spring.io 的基础代码。
  • initializer-page:脚手架前端页面。
  • initializer-start:脚手架启动、打包入口模块。