SpringCloud版本升级个组件替代方案

4,958 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情

Spring Boot

Spring Boot 版本

截止 2023 年 1 月 20 日,Spring Boot 的最新版本为 3.0.2,最新的版本信息可以查阅以下网站来获取:

image.png

Spring Cloud

Spring Cloud 版本

截止 2023 年 1 月 20 日,Spring Cloud的最新版本为 2022.0.1,最新的版本信息可以查阅以下网站来获取:

image.png

SpringBoot 版本的对应关系

Spring Cloud VersionSpring Boot Version
2022.0.x aka Kilburn3.0.x
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

最新官方给出说明:SpringCloud Dalston,Edgware,Finchely,Greenwich版本已经End of life,不再迭代,只修复对应BUG fixes。

image.png

Spring Cloud Alibaba

由于Spring Boot 2.4+和以下版本之间的变化较大,目前企业级客户老项目相关Spring Boot版本仍停留在 Spring Boot 2.4以下,为了同时满足存量用户和新用户不同需求,社区以Spring Boot 2.4为分界线,同时维护Spring Cloud Alibaba 2.2.x2021.x两个分支的迭代。

Spring CloudSpring Cloud Alibaba 最新的版本对应关系请看 GitHub Wiki

2.2.x 分支

适配 Spring Boot 2.4、Spring Cloud Hoxton及以下的版本,Spring Cloud Alibaba各版本的对应关系如下表所示(最新版本用 * 标记)

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

2021.x 分支

适配 Spring Boot 2.4、Spring Cloud 2021.x 及以上的版本,Spring Cloud Alibaba各版本的对应关系如下表所示(最新版本用 * 标记)。特别注意,该分支的Spring Cloud Alibaba版本命名方式进行了调整,未来将对应Spring Cloud版本,前三位为Spring Cloud版本,最后一位为扩展版本;比如适配Spring Cloud 2021.0.1版本对应的Spring Cloud Alibaba第一个版本为 2021.0.1.0,第个二版本为 2021.0.1.1,依此类推。

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version
2021.0.4.0 *2021.0.42.6.11
2021.0.1.02021.0.12.6.3
2021.12020.0.12.4.2

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

每个Spring Cloud Alibaba组件的版本,及其自身所适配的各组件的对应版本关系如下表所示:

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

替代方案概览

netflix-hystrix-replacement

替代方案介绍

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 作为客户端的负载均衡组件。

spring.io/guides/gs/s…

Hystrix 替代方案

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