前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >聊聊Spring Cloud Alibaba的架构思想

聊聊Spring Cloud Alibaba的架构思想

作者头像
35岁程序员那些事
发布2022-09-23 17:16:56
4300
发布2022-09-23 17:16:56
举报

Spring 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的架构思想


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构随笔录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档