为什么要推荐大家使用Spring Cloud Alibaba

2023-01-05 16:14:59 浏览数 (2)

在开源领域,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,才能从实战项目中去多总结和复盘该微服务治理框架的优势和缺点。

0 人点赞