来源:Java技术栈
经过 Spring Cloud Alibaba 2022 的第一个候选版本 2022.0.0.0-RC1 发布 7 个多月后,中间还有一个 2022.0.0.0-RC2 版本,就在前几天,Spring Cloud Alibaba 2022.0.0.0 正式版 终于正式发布了。
由于 Spring Boot 各个版本之间变化非常大,特别是 Spring Boot 2.4 和 3.0 版本,所以 Spring Cloud Alibaba 以 Spring Boot 3.0 和 2.4 为分界线,同时维护了 2022.x、2021.x、2.2.x 三个版本分支。
Spring Cloud Alibaba 版本基础依赖如下:
| Spring Cloud Alibaba | Spring Cloud | Spring Boot | JDK |
|---|---|---|---|
| 2022.0.0.0 | Spring Cloud 2022.0.0 | 3.0.2 | 17+ |
| 2021.0.5.0 | 2021.0.5 | 2.6.13 | 8+ |
| 2021.0.4.0 | Spring Cloud 2021.0.4 | 2.6.11 | 8+ |
| 2021.0.1.0 | Spring Cloud 2021.0.1 | 2.6.3 | 8+ |
| 2.2.9.RELEASE | Spring Cloud Hoxton.SR12 | 2.3.12.RELEASE | 8+ |
Spring Cloud Alibaba 2022.0.0.0 主要适配了 Spring Cloud 2022.0.0、Spring Boot 3.0、JDK 17,这四个技术其实是相互依赖的关系,前者是基于后者的构建,其中任何一个技术的版本都不能随意更换。
推荐阅读:Spring Boot 3.0 正式发布,王炸!!
Spring Cloud Alibaba 的版本号是跟 Spring Cloud 版本走的,但不会每个版本同步更新,比如 Spring Cloud Alibaba 并没有同步 Spring Cloud 2021.0.2, 2021.0.3 版本。
Spring Cloud Alibaba 的版本号说明:
版本前 3 位是 Spring Cloud 版本号,最后一位为扩展版本号。
比如适配 Spring Cloud 2022.0.0 版本对应的 Spring Cloud Alibaba 第一个版本为:2022.0.0.0,第个二版本为:2022.0.0.1,依此类推。
Spring Cloud Alibaba 不同的版本,其适配的各个底层组件版本也可能不同,依赖的各个组件版本如下:
| Spring Cloud Alibaba | Sentinel | Nacos | RocketMQ | Seata |
|---|---|---|---|---|
| 2022.0.0.0 | 1.8.6 | 2.2.1 | 4.9.4 | 1.7.0 |
| 2021.0.5.0 | 1.8.6 | 2.2.0 | 4.9.4 | 1.6.1 |
| 2021.0.4.0 | 1.8.5 | 2.0.4 | 4.9.4 | 1.5.2 |
| 2021.0.1.0 | 1.8.3 | 1.4.2 | 4.9.2 | 1.4.2 |
| 2.2.9.RELEASE | 1.8.5 | 2.1.0 | 4.9.4 | 1.5.2 |
Spring Cloud Alibaba 2022.0.0.0 更新最大的组件是 Nacos 和 Seata,更新会存在一定的兼容性问题。
还有大量细节更新,栈长这里就不一一列出了,感兴趣的可以阅读底部的官方发布说明,2022.0.0.0 版本的内容更新主要涉及三个版本,包括候选版本,正式版本发布说明没有包含全部更新内容。
个人认为 2022.0.0.0 版本最大的功能是对静态编译的支持,在适配 Spring Boot 3.0 以后,使用基于 GraalVM 构建原生应用镜像,各方面都要直接起飞。
GraalVM 是什么?
GraalVM 是一个跨语言的通用虚拟机,不仅支持了 Java、Scala、Groovy、Kotlin 等基于 JVM 的语言,以及 C、C++ 等基于 LLVM 的语言,还支持其他像 JavaScript、Ruby、Python 和 R 语言等。
GraalVM 可用来代替 JVM,它通过预先编译(Ahead Of Time,AOT)等技术对 Java 应用进行预先编译,让 Java 应用启动速度更快、占用内存更低、体积也更小。
下面是 Spring Cloud Alibaba 官方做的测试:
测试环境:
macOS 11.4 2.6 GHz 6-Core Intel Core i7 处理器 16G 内存 主要测试启动速度和运行时占用内存,分别模拟 3 次取平均值。

从上述测试结果可发现,最新支持 Spring Boot 3.0 基于 GraalVM 的 Spring Cloud Alibaba 应用,不管是在启动速度,还是在内存占用,以及在应用包大小方面,都得到显著降低。
拿服务注册和服务消费的测试结果对比:
基于 GraalVM 的应用启动速度提升了近 10 倍,运行时内存占用比原来降低了近 2/3,效果非常明显。
所以,适配 Spring Boot 3.0 发布后,基于 Spring Cloud Alibaba 的云原生应用直接起飞了,可以帮助企业更快地进行弹性扩缩容和降低云成本。
还有很多人搞不清楚 Spring Cloud Alibaba、Spring Cloud,它们到底有什么关系,栈长今天给大家科普一下。
Spring Cloud Alibaba 是微服务开发一站式解决方案,由阿里巴巴开源,它包含开发分布式应用的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
Spring Cloud Alibaba 也早就成为了 Spring Cloud 的官方子项目:

通过 Spring Cloud Alibaba,只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。
说白点,Spring Cloud 提供了一套微服务开发的统一抽象编程模型,即制定一个标准,Spring Cloud Netflix 和 Spring Cloud Alibaba 都是基于该抽象编程模型的实现,并集成了自家的开源组件,以实现微服务开发的各个环节。
除了以上介绍的那三种,市面上我知道的还有腾讯开源的 Spring Cloud Tencent,不过还比较年轻,需要市场的检验。
Spring Cloud Netflix 虽然起步早,但是后面各种组件都停止维护了,版本更新和组件替换、兼容等都是个大问题,不太建议再继续学习了。
所以,学习 Spring Cloud Alibaba 是目前最正确的姿势:
版权声明: 本文系公众号 "Java技术栈" 原创,转载、引用本文内容请注明出处,抄袭、洗稿一律投诉侵权,后果自负,并保留追究其法律责任的权利
参考文档:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70024922/viewspace-2967689/ ,如需转载,请注明出处,否则将追究法律责任。