来源: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 AlibabaSpring CloudSpring BootJDK2022.0.0.0Spring Cloud 2022.0.03.0.217+2021.0.5.02021.0.52.6.138+2021.0.4.0Spring Cloud 2021.0.42.6.118+2021.0.1.0Spring Cloud 2021.0.12.6.38+2.2.9.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE8+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 AlibabaSentinelNacosRocketMQSeata2022.0.0.01.8.62.2.14.9.41.7.02021.0.5.01.8.62.2.04.9.41.6.12021.0.4.01.8.52.0.44.9.41.5.22021.0.1.01.8.31.4.24.9.21.4.22.2.9.RELEASE1.8.52.1.04.9.41.5.2Spring 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.42.6 GHz 6-Core Intel Core i7 处理器16G 内存主要测试启动速度和运行时占用内存,分别模拟 3 次取平均值。
从上述测试结果可发现,最新支持 Spring Boot 3.0 基于 GraalVM 的 Spring Cloud Alibaba 应用,不管是在启动速度,还是在内存占用,以及在应用包大小方面,都得到显著降低。云南idc服务商
拿服务注册和服务消费的测试结果对比:
基于 GraalVM 的应用启动速度提升了近 10 倍,运行时内存占用比原来降低了近 2/3,效果非常明显。
所以,适配 Spring Boot 3.0 发布后,基于 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技术栈第一时间推送。版权声明:本文系公众号 "Java技术栈" 原创,转载、引用本文内容请注明出处,抄袭、洗稿一律投诉侵权,后果自负,并保留追究其法律责任的权利参考文档:
https://github.com/alibaba/spring-cloud-alibaba/wikihttps://github.com/alibaba/spring-cloud-alibaba/releases/https://sca.aliyun.com/zh-cn/docs/2022.0.0.0/overview/roadmap/graalvm-adapter/graalvm