为什么要推荐大家使用Spring Cloud Alibaba
在开源领域,RPC框架非常多,可以说是一片红海,各种类型的框架,比如Spring Cloud、Dubbo和蚂蚁金服的Sofa RPC等等。
当然我这里要说的就是Spring Cloud Alibaba,为什么要推荐大家去使用呢?
首先,Spring Cloud Alibaba并不是一款纯碎的RPC框架,它是一款微服务治理框架,也就是说无论是你想自研微服务框架还是直接使用开源的微服务框架,那么使用Spring Cloud Alibaba都可以做到开箱即用,并且也可以做到向Spring Boot和Spring Cloud的向下兼容。
其次,Spring Cloud Alibaba是Spring Cloud和Spring Boot的超集,也就是说只要能够运用它们的业务场景,Spring Cloud Alibaba都是能够支持的。
然后,Spring Cloud Alibaba针对阿里巴巴生态体系下的分布式中间件框架的使用和落地都是非常友好的,也就是说你想去使用阿里巴巴中间件团队开源的中间件能力,那么未来Spring Cloud Alibaba都会去支持。
最后,Spring Cloud Alibaba是一款开发微服务的神器,研发人员可以基于它去构建一套体系化的微服务架构,从而实现分布式架构。
总之,假如你的企业需要做架构转型,无论你是去做上云升级,还是要做业务重构,从而微服务化,还是你要做云原生技术升级,那么Spring Cloud Alibaba都是你的最佳选择。
Spring Cloud Alibaba目前最新的版本为2021.0.4.0,这个版本有一个比较大的改动,那就是支持高版本的Spring Cloud Stream,比如3.2.5,也就是说开发人员可以在这个版本使用Spring Cloud Stream提供的函数式编程,并使用函数式编程去完成消息的生产和消费,并且可以同时支持RocketMQ、RabbitMQ、Kafka和Redis,这样开发人员可以进一步的提效。
Spring Cloud Alibaba目前支持Sentinel、RocketMQ、Dubbo、Seata、Spring Cloud Gateway、Zuul、Spring Cloud(也包括它的所有的能力,比如多种注册中心Consul、Eureka、ZooKeeper和Nacos)。
我相信现在很多企业都有上要上云的需求,也就是将自己的业务服务托管到云上,比如阿里云。阿里云为了方便大家去上云,提供了一套完整的微服务架构技术解决方案,也就是说你需要按照它提供的技术规范去改造,从而就可以使用它提供的微服务治理能力,也就是我们常说的商业化能力。
这些商业化的能力都是有对应的开源版本的,比如RocketMQ和Nacos,都是开源版本,但是假如你现在需要升级为商业化版本,你就可以直接使用Spring Cloud Alibaba,先使用开源的中间件,然后就可以无缝的升级为商业化版本。
当然Spring Cloud Alibaba确实是一款微服务架构的神器,但是它还是有很多能力是具备的,需要开发人员去定制化开发。当然,沿用Spring Cloud Alibaba改造分布式中间件的架构模式就可以定制化很多分布式中间的能力,这个都可以借鉴的。
曾经在我的团队当中就借用Spring Cloud Alibaba的架构思想将原有的RPC框架进行升级改造,从而实现一个服务可以完成双注册中心和RPC框架之间的上下兼容。
这个中兼容确实很重要,假如你的业务服务已经在使用旧的RPC框架,并且已经使用很多年了,这个时候你去升级技术,你不可能在第一阶段就将所有的业务服务改造完成,再整体上线,这个不太现实。
这个时候,你就需要梳理一部分服务,优先完成改造,但是无论你怎么尝试去做到高内聚低耦合,你都会存在新老服务相互依赖的业务场景,这个时候你就需要去做折中的改造,需要将新的服务,在新旧注册中心同时注册服务,从而新旧服务都可以订阅该服务。但是这个改造又不能对业务的侵入性太高,所以这个时候就需要按照Spring Cloud Alibaba的架构模式,重新重构旧的RPC框架的使用方式,这样即使整个团队的Spring Cloud Alibaba框架要升级,也不影响改造的框架的同步升级。
总之,大家可以在自己的项目中去多多落地Spring Cloud Alibaba,才能从实战项目中去多总结和复盘该微服务治理框架的优势和缺点。
相关文章
- 几行代码就可以使用分布式配置中心,Spring Cloud Alibaba真香
- 别再乱学 Spring Cloud 微服务了,这才是最新、最正确的使用方式!
- Spring Cloud 最新版发布,干掉 JSch,支持 Mina,这次真的追不动了。。
- Spring Cloud Eureka详解
- 在Spring Cloud 中使用Zipkin
- Spring Cloud Config
- 服务容错的必要性与Spring Cloud Alibaba Sentinel 限流配置实战
- Spring Cloud:第二章:eureka服务发现
- Spring Cloud Gateway 服务网关的部署与使用详细教程
- Spring Cloud Ablibaba 学习系列文章
- 云原生之快速使用Nacos Spring Cloud
- Spring Cloud Zuul 过滤器拆分serivceId和请求路径
- Spring Cloud Config 配置客户端使用
- Spring Cloud Config 应用实践
- Spring Cloud Config 故障排查与优化
- 在 Spring Cloud 中使用 Ribbon
- 使用Spring Cloud Feign调用RESTful API(二)
- 使用Spring Cloud Feign实现微服务的负载均衡(一)
- Spring Cloud Gateway 的架构和核心组件(一)
- 使用 Spring Cloud Gateway 进行微服务架构的 API 网关实践
- 使用Spring Cloud Sleuth跟踪应用程序中的请求
- Spring Cloud Stream应用程序开发-集成Spring Boot应用程序示例
- Spring Cloud Security,使用redis存储token
- Spring Cloud Bus使用自定义的消息转换器(二)
- 重磅:Consul、Terraform、Vagrant 等禁止中国使用!部分 Spring Cloud 用户或受影响
- 使用 Spring Cloud Bus 在微服务之间传递消息
- Spring Cloud Data Flow 和 Spring Cloud Stream 集成实现基于消息驱动的数据流应用程序
- 微服务架构下使用Spring Cloud Zuul作为网关将多个微服务整合到一个Swagger服务上详解架构师
- spring cloud 之 Feign 使用HTTP请求远程服务详解架构师
- Spring Cloud 入门教程(三): 配置自动刷新详解编程语言
- Spring Cloud 入门教程(十):和RabbitMQ的整合 — 消息总线Spring Cloud Netflix Bus详解编程语言
- Spring Cloud(三):服务提供与调用详解编程语言
- Spring Cloud之Swagger2API接口管理详解编程语言
- Spring Cloud之Swagger集群搭建详解编程语言
- Spring Boot(二十):使用spring-boot-admin对spring-boot服务进行监控详解编程语言
- spring Boot(十九):使用Spring Boot Actuator监控应用详解编程语言