聊聊Spring Cloud Alibaba的架构思想

Posted 35岁程序员那些事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聊聊Spring Cloud Alibaba的架构思想相关的知识,希望对你有一定的参考价值。



Cloud Alibaba致力于提供微服务开发的一站式解决方案,它是Spring Cloud组件被植入Alibaba元素之后的产物。利用Spring Cloud Alibaba,可以快速搭建微服务架构并完成技术升级。中小企业如果需要快速落地业务中台和技术中台,并向数字化业务转型,那Spring Cloud Alibaba绝对是一个“神器”。

什么是Spring Cloud Alibaba

好吧我们先看看Spring Cloud Alibaba的官网,如下图所示。

从图中就可以看出,Spring Cloud Alibaba是Spring Cloud的子项目,好吧,这两项目一开始的定位就是父子关系。

看来官方还是没打算颠覆Spring Cloud的架构思想,只是想做一次能力的增强和扩展。

为什么要有Spring Cloud Alibaba

我们先看看Spring Cloud Alibaba有哪些能力?

   

Spring Cloud Alibaba 的组件功能既有免费版本,也有收费版本。

Sentinel:以“流”为切入点,在流量控制、并发性、容错降级和负载保护等方面提供解决方案,以保护服务的稳定性。


Nacos:一个具备动态服务发现和分布式配置等功能的管理平台,主要用于构建云原生应用程序。


RocketMQ:一个高性能、高可用、高吞吐量的金融级消息中间件。Spring Cloud Alibaba 将RocketMQ 定制化封装,开发人员可“开箱即用”。


Dubbo:一个基于Java的高性能开源RPC框架。


Seata:一个高性能且易于使用的分布式事务解决方案,可用于微服务架构。

阿里云OSS(阿里云对象存储服务):一种加密的安全云存储服务,可以存储、处理和访问来自世界任何地方的大量数据。


阿里云SchedulerX:一款分布式任务调度产品,支持定期任务和在指定时间点触发任务。


阿里云SMS:一种覆盖全球的消息服务,提供便捷、高效和智能的通信功能,可帮助企业快速联系其客户。


我们再来看看Spring Cloud Alibaba的各个版本的对比,如下图所示。

我们再来看看,没有Spring Cloud Alibaba之前,我们如何使用Spring Cloud进行微服务开发。


Spring Cloud支持多种注册中心,比如Eureka、ZooKeeper、Consul等。


如果软件开发人员需要采用Eureka作为注册中心,则需要搭建一个Eureka Server集群,用于管理注册中心服务的元数据,然后应用服务需要接入Eureka,就需要使用对应的注解将服务提供者以及服务订阅者注册到Eureka注册中心。同理ZooKeeper和Consul也是采用同样的方式,使用对应注册中心的注解完成服务的注册和订阅。


Spring Cloud为了方便软件开发人员快速的接入不同的注册中心,统一使用注解@EnableDiscoveryClient+对应注册中心的Starter组件。当然Eureka还是沿用老的使用方式@EnableEurekaClient+对应注册中心的Starter组件,主要是由于Spring Cloud已经停止了对Eureka的维护。


好吧问题来了,Spring Cloud已经将ZooKeeper和Consul的使用方式统一起来,软件开发人员非常愉快的将应用接入Spring Cloud,但是目前市面上又出了一个新的注册中心,比如Nacos,它的性能非常高,并且支持CP和AP模式,但是Spring Cloud不支持。


我们再来看看在没有Spring Cloud Alibaba之前,我们如何使用Nacos。


好吧,Nacos是一款既支持分布式注册中心和分布式配置中心的神器。Nacos官方提供了很多接入模式,比如Spring Framework、Spring Boot等,但是其底层本质上是依赖Nacos提供的SDK,比如Nacos Client。


如果采用Spring Framework+Nacos Client(比如nacos-spring-context),则需要开发人员自己维护NacosNamingServce和NacosConfigService实例对象,也就是说开发人员需要自己依赖Nacos Client做二次开发,成本非常大。


如果采用Spring Boot+Nacos Starter组件(比如nacos-discovery-spring-boot-starter),则开发人员可以高效的接入Nacos配置中心,并且可以使用Spring Boot提供的各种Starter组件。


如果纯碎采用Spring Cloud作为基础框架,则不能使用Nacos作为注册中心,好纠结啊。


那么有没有一个框架既可以使用Spring Cloud,又可以使用Spring Boot,还能兼容各种注册中心呢,很高兴的告诉大家,Spring Cloud Alibaba就是这个神器,完美的解决了开发人员微服务架构框架选型的问题,用它就是了。

Spring Cloud Alibaba的核心架构思想

Spring Cloud Alibaba整体架构,如下图。

Spring Cloud Alibaba架构的木目标是将开源产品和云厂商融合,做到业务云上和云下的无缝兼容,业务开发人员只需要关心业务项目开发,底层技术细节就交给Spring Cloud Alibaba。


如何快速上手并使用

好吧,说了那么多我们软件开发人员怎么快速上手Spring Cloud Alibaba呢?

其实最简单的方式是用问题驱动,然后自己亲自动手使用Spring Cloud Alibaba的功能,再去分析源码这样才能更加深刻的熟悉原理。


也许会有一些人会认为,我看了源码就算是我现在熟悉了,过了一个月之后就忘记了,有什么用呢。但是你这样想,就算是不看源码,你做其他的事情,一个月之后也会忘记的。只有通过理论和实战结合,你才会长期的保持习惯去练习,做到温故而知新。


咱们现在软件开发人员,尤其是Java开发人员,应该都用IDEA来做项目开发,我觉得就可以利用它来快速的生成一个Spring Cloud Alibaba项目,或者利用Spring Framework官方的脚手架项目Spring Initializr等。


还有就是要多总结一些最佳实践,比如要从Spring Cloud Alibaba的配置文件开始,反撸一些配置的业务场景,这样才能更加深刻的了解Spring Cloud Alibaba的设计思想。

总结

本文就是从全局聊了一些Spring Cloud Alibaba的一些架构思想,但是没有从细节聊,具体细节可以参考“Spring Cloud Alibaba系列”。

下一期:聊聊Nacos的架构思想




往期推荐

Spring Cloud Alibaba系列:

防止内卷,拒绝潜规则|工兵踩地雷之Spring Cloud Alibaba核心注册原理|35岁程序员那些事

防止内卷和被潜规则,Spring Cloud Alibaba微服务架构实战派(上下册)|35岁程序员那些事

Spring Cloud Alibaba入门到实战原理实践

阿里巴巴为什么要开源Spring Cloud Alibaba

不用找了,这本书帮你完全搞定Spring Cloud Alibaba,你还犹豫什么?

深度剖析Spring Cloud Alibaba系列——如何兼容Spring Cloud

深度剖析Spring Cloud Alibaba系列——如何兼容Nacos


历史文章推荐

Skywalking系列:

分布式链路追踪 Skywalking-集群管理设计

分布式链路追踪 SkyWalking:配置管理设计

SkyWalking 分布式链路追踪:最新 Kafka 通信模型设计

分布式链路追踪:Skywalking 的链路模型设计

分布式链路追踪:Skywalking 探针模型设计

分布式链路追踪 Skywalking:告警和度量架构设计

分布式链路追踪 Skywalking:插件化和模块化架构设计

分布式链路追踪Skywalking  Skywalking 存储客户端设计

源码分析-分布式链路追踪:Skywalking存储插件能力-elasticsearch

架构师如何技术选型-全链路监控

基于Skywalking全链路行业解决方案

一种Spring Cloud Alibaba微服务架构图设计

开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于聊聊Spring Cloud Alibaba的架构思想的主要内容,如果未能解决你的问题,请参考以下文章

一种Spring Cloud Alibaba微服务架构图设计

一种Spring Cloud Alibaba微服务架构图设计

一种Spring Cloud Alibaba微服务架构图设计

不讲武德!Spring Cloud Alibaba微服务架构笔记,从实战到源码精讲

Spring Cloud Alibaba - 01漫谈传统架构和微服务架构

Spring Cloud Alibaba+saas企业架构技术选型+架构全景业务图 + 架构典型部署方案