用Spring Cloud Alibaba开发微服务会更香吗?
Spring Cloud Alibaba致力于提供微服务开发的一站式解决方案,它是Spring Cloud组件被植入Alibaba元素之后的产物。
利用Spring Cloud Alibaba,可以快速搭建微服务架构并完成技术升级。中小企业如果需要快速落地业务中台和技术中台,并向数字化业务转型,那Spring Cloud Alibaba绝对是一个“神器”。
01 Spring Cloud Alibaba是什么?
Spring Cloud Alibaba与Spring Cloud的关系如下图所示。Spring Cloud Alibaba是Spring Cloud的超集。
如上图所示,业务能力代表应用的服务,服务之间通过HTTP或者Dubbo进行通信。
在没有Spring Cloud Alibaba之前,如果应用使用Spring Cloud 作为基础框架,并使用Spring Cloud生态的服务治理能力(只支持HTTP或者DNS),则其是不能兼容Dubbo服务的。在Spring Cloud Alibaba出现后,服务可以快速地完成HTTP和Dubbo通信的适配。
Spring Cloud Alibaba依赖Spring Cloud,并通过二次开发让开发者使用Spring Cloud更加简单和灵活。开发者可以直接使用Spring Cloud Alibaba来替换Spring Cloud。在Spring Cloud Alibaba出现后,开发者可以在应用中采用Spring Cloud的协议和Dubbo的协议混合通信。
02 切换过来成本大吗?
如果业务原先采用“Spring Cloud + Eureka/Consul”微服务体系,则可以快速切换到Spring Cloud Alibaba微服务体系。
如果业务还停留在单体架构,则可以几乎零成本地切换到Spring Cloud Alibaba微服务体系,风险很小。
如果业务应用要上阿里云,则可以直接采用Spring Cloud Alibaba的商业版来实现,成本非常小。
03 Spring Cloud Alibaba有哪些组件?
Spring Cloud Alibaba 的组件功能既有免费版本,也有收费版本。组件如下。
Sentinel:以“流”为切入点,在流量控制、并发性、容错降级和负载保护等方面提供解决方案,以保护服务的稳定性。
Nacos:一个具备动态服务发现和分布式配置等功能的管理平台,主要用于构建云原生应用程序。
RocketMQ:一个高性能、高可用、高吞吐量的金融级消息中间件。Spring Cloud Alibaba 将RocketMQ 定制化封装,开发人员可“开箱即用”。
Dubbo:一个基于Java的高性能开源RPC框架。
Seata:一个高性能且易于使用的分布式事务解决方案,可用于微服务架构。
阿里云OSS(阿里云对象存储服务):一种加密的安全云存储服务,可以存储、处理和访问来自世界任何地方的大量数据。
阿里云SchedulerX:一款分布式任务调度产品,支持定期任务和在指定时间点触发任务。
阿里云SMS:一种覆盖全球的消息服务,提供便捷、高效和智能的通信功能,可帮助企业快速联系其客户。
04 学习Spring Cloud Alibaba的建议
下面给出学习Spring Cloud Alibaba的建议:
(1) 需要先了解一下 Spring Boot,但不一定要先学习Spring Cloud。
(2) 最好能实战,俗话说,光说不练假把式,要想快速的上手和熟悉Spring Cloud Alibaba,就得多练习,多实战。
搭建Nacos注册中心环境,用Spring Cloud Alibaba快速初始化一个微服务,验证注册中心的功能,比如服务注册、服务订阅、服务分组、多租户等。 搭建Nacos配置中心环境,用Spring Cloud Alibaba快速初始化一个微服务,验证配置中心功能,比如配置管理、配置信息动态变更、灰度配置等。 搭建Sentinel环境,用Spring Cloud Alibaba快速初始化一个微服务,验证Sentinel的分布式流量治理的功能,比如流量控制、熔断降级、系统自适应保护以及持久化流控规则等。 搭建Seata环境,用Spring Cloud Alibaba快速初始化一个微服务,验证Seata的分布式事务治理的功能,比如AT模式的分布式事务、TCC模式的分布式事务、XA模式的分布式事务以及Saga模式的事务等。 搭建RocketMQ环境,用Spring Cloud Alibaba快速初始化一个微服务,验证RocketMQ的分布式消息的功能,比如消息路由管理、生产消息、消费消息、存储消息、分布式事务消息等。 搭建一个基础网关Spring Cloud Gateway环境,用Spring Cloud Alibaba快速初始化一个微服务,验证网关的功能,比如服务路由、服务鉴权等。 搭Skywalking环境,用Spring Cloud Alibaba快速初始化一个微服务,验证分布式链路追踪的功能、比如不同探针的流量采集、链路数据存储、链路数据清洗等。 搭建Elastic Job环境,用Spring Cloud Alibaba快速初始化一个微服务,验证分布式定时Job的功能,比如定时任务、任务管理以及任务分片等。 搭建ShardingSphere环境,用Spring Cloud Alibaba快速初始化一个微服务,验证分库分表的功能,比如读写分离、分库分表等。 搭建Redis环境,用Spring Cloud Alibaba快速初始化一个微服务,验证Redis的功能,比如基本数据结构的数据存储、分布式锁、分布式缓存等。 搭建Discovery环境,用Spring Cloud Alibaba快速初始化一个微服务,验证Discovery的功能,比如灰度路由、灰度发布以及蓝绿发布等。
(3) 在经过大量的实例练习之后,需要有一个完整的项目去将这些实例给整合在一起,做到从业务中来,到业务中去的效果。
技术一定经过项目的演练和洗礼,才能真正的熟悉它,所以Spring Cloud Alibaba一定要在业务中使用,并落地到真正的项目中,才能实现它的价值。 收集更多的业务场景,这样会更加有驱动力的去优化业务中“基于Spring Cloud Alibaba”的微服务架构。 收集更多的用户体验,这样才能更好的和Spring Cloud Alibaba开源社区保持更多的功能需求的沟通性,并驱动自己去熟悉未知的技术细节。
(4) 处理好“是先学支撑技术,还是一步到位”问题。
首先,Spring Cloud Alibaba是一个微服务基础框架,它本身具备一定的微服务治理的能力,比如分布式服务治理、分布式配置治理、分布式流量治理、分布式事务、分布式网关、分布式消息治理等。如果项目直接使用Spring Cloud Alibaba提供的功能,完全可以满足中等项目的微服务开发的业务场景,开发人员只需要熟悉Spring Cloud Alibaba就可以成为一个微服务领域的开发专家。
其次,既然是微服务基础框架,它还可以扩展自身的没有的微服务治理能力,比如Skywalking、Discovery、ShardingSphere、DataX等。Spring Cloud Alibaba是基于Spring Boot的思想来设计的,Spring Boot又是基于Spring Framework来设计的。也就是说,凡是Spring Framework生态的技术栈,Spring Cloud Alibaba均可以扩展。这样无论是开源社区提供的微服务技术能力,还是公司自研的微服务技术能力,都可以被Spring Cloud Alibaba引入。
最后,Spring Cloud Alibaba是Spring Cloud的超集,它具备Spring Cloud整个微服务生态系统的能力。
总结,Spring Cloud Alibaba绝对是微服务架构领域的巨无霸,通过它开发人员可以快速地搭建高可用、高稳定性和高性能的微服务架构。在搭建的过程中,还会驱动开发人员去扩展Spring Cloud Alibaba还不支持的微服务技术。Spring Cloud Alibaba是让开发人员入门和进阶微服务架构的一步到位的最佳选择,通过它开发人员可以快速地熟悉微服务架构的全栈支撑技术。
如果想要系统学习Spring Cloud Alibaba,推荐阅读 《Spring Cloud Alibaba微服务架构实战派(上下册)》。
本书是以“实现完整的Spring Cloud Alibaba微服务架构”为目标,为了这个目标,除介绍Spring Cloud Alibaba这个“主角”外,对于支撑Spring Cloud Alibaba微服务架构的技术(比如Seata、Skywalking、Redis、RocketMQ等)也基本都是从零讲起,保证读者能够平滑地学习。本书是“一站到底”的解决方案:读者只需从这里上车,中途无需转乘,读者需要什么,本书就提供什么,直达终点。
如果喜欢本文欢迎 在看丨留言丨分享至朋友圈 三连
抽奖赠书
截止时间:2022年1月9日 17:00
如何抽奖:点击下方卡片,关注并回复关键词 :20220105