在 Nacos 1.0.0 Release 之后,Spring Cloud Alibaba 也终于发布了最新的版本。该版本距离上一次发布,过去了整整 4 个月!下面就随我一起看看,这个大家期待已久的版本都有哪些内容值得我们关注。
版本变化
之前在《Spring Cloud Alibaba 与 Spring Boot、Spring Cloud 之间不得不说的版本关系》一文中,我有提到过当前版本的 Spring Cloud Alibaba 还处于孵化器中,没有纳入 Spring Cloud 的主线版本。所以,我们在使用的时候需要明确 Spring Boot、Spring Cloud 主版本以及 Spring Cloud Alibaba 之间的版本关系。
这次的更新,在版本上与我之前文章中说的 0.2.2 来支持 Greenwich 有所区别。这里纠正一下,对于 Greenwich 版本的支持采用了 0.9.x 的版本号来对应,所以 Spring Boot
、Spring Cloud、Spring Cloud Alibaba 三者之间的准确关系如下表所示:
Spring Boot | Spring Cloud | Spring Cloud Alibaba |
---|---|---|
2.1.x | Greenwich | 0.9.x |
2.0.x | Finchley | 0.2.x |
1.5.x | Edgware | 0.1.x |
1.5.x | Dalston | 0.1.x |
模块新增
这次新版本中,最值得关注的应该就是下面这几个新模块的加入了。之前我说过非常看好 Spring Cloud Alibaba,下面新增的几个模块就是主要原因之一。
spring-cloud-alibaba-dubbo
对于 Dubbo 的支持,我觉得对于国内用户来说,是非常有意义的。由于 Dubbo 在过去一段时间对国内行业的渗透非常广,至今依然有很多团队在使用着这个老牌 RPC。但是,由于 Dubbo 只是一个单纯的 RPC 框架,它不像 Spring Cloud 这样,拥有不错的生态,在外围设施的对接支持上做了非常多的努力,使得我们在使用 Spring Cloud 的时候,可以很快的体系化我们的基础设施。
现在,Spring Cloud Alibaba 将 Dubbo 融入 Spring Cloud 体系,可以让其一起享受 Spring Cloud 生态的各种便利。对于原来的 Dubbo 用户来说,该模块的加入为原 Dubbo 用户拥抱 Spring Cloud 生态提供了非常好的支持,可以大大减少用户自己融入需要做的扩展工作量。
为什么说这个模块好呢?看看下面几个与 Spring Cloud 生态融合的重要功能:
- 支持所有 Spring Cloud 的注册中心实现,包括 Spring Cloud Alibaba 中整合的 Nacos。也就是说,以前我们自己在整合 Spring Cloud 和 Dubbo 来使用的时候,如果不去为 Dubbo 扩展注册中心,那么就不得不采用 Eureka + Zookeeper 同时存在的复杂架构。现在,在这个模块的帮助下,注册中心就可以得到统一。
- 支持 RestTemplate,开发者只需要在定义 RestTemplate 的
@Bean
注解上搭配使用@DubboTransported
注解,就能将这个客户端直接支持 Dubbo 调用。 - 支持 Feign,开发者只需要在
@FeignClient
注解上搭配使用@DubboTransported
,就能将 Feign 客户端变成 Dubbo 的客户端。这样的设计,对于传统 Spring Cloud 用户来说,是不是也非常容易接受呢?
如果您的团队还在坚持使用 Dubbo,又很想引入 Spring Cloud,那么不妨移步来尝试一下 Spring Cloud Alibaba 的最新版本吧!
注意:该模块没有发布到 0.1.2 中,所以只有 0.2.2 和 0.9.0 中才拥有。也就是说,仅支持 Spring Boot 2.x 和 Spring Cloud Finchley 版和 Greenwich 版。
spring-cloud-alibaba-seata
Seata 是 Alibaba 与蚂蚁金融共建的一个开源分布式事务解决方案。通过该模块的加入,可以非常方便的在 Spring MVC、RestTemplate、FeignClient 的调用中传递事务上下文,同时也支持与 Hystrix、Sentinel 的联合使用。全方面的打通 Spring Cloud 生态的分布式事务场景。
这个框架我还没有深入的研究过,后续我也会将这部分内容的学习写到《Spring Cloud Alibaba 基础教程》中与大家分享心得与经验。如果对这个感兴趣的,记得关注我哟。
spring-cloud-alibaba-sentinel-zuul
在该模块中定义了一些为 Zuul 定制的过滤器:SentinelPreFilter
、SentinelPostFilter
、SentinelErrorFilter
。通过它们来为 Zuul 实现网关层的请求流量控制。用户可以通过 spring.cloud.sentinel.zuul.
参数来配置这些 Sentinel 过滤器。
spring-cloud-alibaba-sms
SMS 是阿里云的商业化产品。所以该模块类之前的 SchedulerX 模块,OSS 模块类似,主要为了更方便的整合使用而存在。如果是 Spring Cloud 用户,同时也是阿里云这些产品的用户,那么直接使用还是非常方便的。但是如果这两个条件都不满足,那么可以忽略之。
模块升级
在该版本中对于一些重要的基础设施模块也做了大幅度的版本升级,包括:
- Nacos:从 0.6.2 升级到 1.0.0
- Sentinel:从 1.4.0 升级到 1.5.2
对于模块功能升级主要与模块整合对象的自身版本有关,所以对于这部分的内容读者可以查阅 Nacos 1.0.0 的文档以及 Sentinel 1.5.2 的文档来进一步新增功能。
而对于 Spring Cloud Alibaba 对其整合新增的配置或注解使用,可以见本文参考资料链接看看更新了什么内容,这里就不做具体介绍了。
最后欢迎留言参与讨论,说说您对 Spring Cloud Alibaba 新版本的看法吧!
参考资料
- Preview releases of Spring Cloud Alibaba are available: 0.9.0, 0.2.2, and 0.1.2
专题推荐
- Spring Boot 基础教程
- Spring Cloud 基础教程(含 Spring Cloud Alibaba)