大家好,我是栈长。

经过 Spring Cloud Alibaba 2022 的第一个候选版本 2022.0.0.0-RC1 发布 7 个多月后,中间还有一个 2022.0.0.0-RC2 版本,就在前几天,Spring Cloud Alibaba 2022.0.0.0 正式版 终于正式发布了。

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 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 Alibaba、Spring Cloud,它们到底有什么关系,栈长今天给大家科普一下。

1、Spring Cloud Alibaba 是什么?

Spring Cloud Alibaba 是微服务开发一站式解决方案,由阿里巴巴开源,它包含开发分布式应用的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。

Spring Cloud Alibaba 也早就成为了 Spring Cloud 的官方子项目:

通过 Spring Cloud Alibaba,只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。

2、Spring Cloud Alibaba 和 Spring Cloud、Spring Cloud Netflix 有什么关系?

  • Spring Cloud: 这是 Spring 官方提供的一套分布式应用开发标准框架,也可以理解为一套微服务开发的统一抽象编程模型。
  • Spring Cloud Netflix: 这是最早期的 Spring Cloud 微服务框架,它基于 Spring Cloud 编程模型整合了许多 Netflix 公司的开源组件,比如:Eureka、Ribbon、Zuul、Hystrix 等,现在它们大多都已经停止维护了。
  • Spring Cloud Alibaba: 这是阿里巴巴基于 Spring Cloud 编程模型开源的微服务框架,整合了各种阿里巴巴微服务开源组件,比如:Nacos、RocketMQ、Sentinel、Seata 等。

说白点,Spring Cloud 提供了一套微服务开发的统一抽象编程模型,即制定一个标准,Spring Cloud Netflix 和 Spring Cloud Alibaba 都是基于该抽象编程模型的实现,并集成了自家的开源组件,以实现微服务开发的各个环节。

3、学习哪个 Spring Cloud 比较好?

除了以上介绍的那三种,市面上我知道的还有腾讯开源的 Spring Cloud Tencent,不过还比较年轻,需要市场的检验。

Spring Cloud Netflix 虽然起步早,但是后面各种组件都停止维护了,版本更新和组件替换、兼容等都是个大问题,不太建议再继续学习了。

所以,学习 Spring Cloud Alibaba 是目前最正确的姿势:

  • Spring Cloud Alibaba 基于 Spring Cloud 构建,只是提供了对 Alibaba 组件的封装而已,比如:Nacos、Sentinel 等,其最顶层的抽象还是 Spring Cloud,所以学习 Spring Cloud Alibaba 就是学习 Spring Cloud。
  • Spring Cloud Alibaba 作为 Spring Cloud 的官方顶级项目,也是国内最强微服务框架及事实上的标准,没有之一。

好了,今天的分享就到这里了,后续栈长也会继续关注并分享更多的 Java 技术干货,关注公众号Java技术栈第一时间推送。

参考文档:


课程推荐

在公众号分享技术之余,栈长花了大部分休息时间打造了的最新《Spring Cloud Alibaba 微服务实战课》,一经推出,好评如潮,课程几乎覆盖了 Spring Cloud Alibaba 所有操作!!!

点击放大查看高清版

已全部完结,可随时报名学习全部内容。

最近栈长又花了不少时间更新到了第三期,干货满满,包括适配最新的 Spring Cloud Alibaba 2022.0.0.0 版本,课程其他内容也升级、加强了,比如 Nacos 配置加解密、OAuth 2 版本更新等,一次订阅,永久免费提供更新。

总之,如果你想系统学习 Spring Cloud 微服务体系,想学习微服务项目架构设计,以及各种主流框架、中间件的衔接和运用,这个课程正适合你。学完直接把各种微服务技术写到简历里,面试跳槽谈薪水时会更有底气。

早订阅的小伙伴,一路学习跟过来,就知道有多值了,不要乱学老旧的微服务技术了,浪费时间和栈长学习最新的 Spring Cloud 微服务技术,少走弯路。

避免无效沟通,课程详细介绍看下这篇:

别再乱学微服务了,这才使用 Spring Cloud 微服务的正确姿势!

感兴趣的可以扫码联系栈长报名:

本月课程做一个活动:

1、赠送小程序《Java面试库》VIP 一年使用权益,含 2500+ Java 面试题及答案,已帮助许多小伙伴进入大厂。

2、赠送知识星球《Java 技术小密圈》100 元新人优惠券,只要 99 元即可加入,含大量知识和学习资料。

以上活动仅限本月(2023/08)报名的用户参加,其他时候以最新内容为准。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注