框架banner.jpg)
SpringCloud Alibaba
(一)SpringCloud Alibaba介紹

? ? ? Spring Cloud Alibaba致力于提供微服務(wù)開發(fā)的一站式解決方案。此項目包含開發(fā)分布式應(yīng)用微服務(wù)的必需組件,方便開發(fā)者通過Spring Cloud編程模型輕松使用這些組件來開發(fā)分布式應(yīng)用服務(wù)。依托Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以將Spring Cloud應(yīng)用接入阿里微服務(wù)解決方案,通過阿里中間件來迅速搭建分布式應(yīng)用系統(tǒng)。
- 服務(wù)限流降級∶默認(rèn)支持WebServlet、WebFlux,OpenFeign、RestTemplate、SpringCloudGateway,Zuul,Dubbo 和 RocketMQ 限流降級功能的接入,可以在運(yùn)行時通過控制臺實時修改限流降級規(guī)則,還支持查看限流降級 Metrics 監(jiān)控。
- 服務(wù)注冊與發(fā)現(xiàn)∶適配 Spring Cloud 服務(wù)注冊與發(fā)現(xiàn)標(biāo)準(zhǔn),默認(rèn)集成了Ribbon 的支持。
- 分布式配置管理∶支持分布式系統(tǒng)中的外部化配置,配置更改時自動刷新。
- 消息驅(qū)動能力∶基于 Spring Cloud Stream 為微服務(wù)應(yīng)用構(gòu)建消息驅(qū)動能力。
- 分布式事務(wù)∶使用 @GlobalTransactional 注解,高效并且對業(yè)務(wù)零侵入地解決分布式事務(wù)問題。
- 阿里云對象存儲∶阿里云提供的海量、安全、低成本、高可靠的云存儲服務(wù)。支持在任何應(yīng)用、任何時間、任何地點存儲和訪問任意類型的數(shù)據(jù)。
- 分布式任務(wù)調(diào)度∶提供秒級、精準(zhǔn)、高可靠、高可用的定時(基于Cron表達(dá)式)任務(wù)調(diào)度服務(wù)。同時提供分布式的任務(wù)執(zhí)行模型,如網(wǎng)格任務(wù)。網(wǎng)格任務(wù)支持海量子任務(wù)均勻分配到所有Worker(schedulerx-client)上執(zhí)行。
- 阿里云短信服務(wù)∶ 覆蓋全球的短信服務(wù),友好、高效、智能的互聯(lián)化通訊能力,幫助企業(yè)迅速搭建客戶觸達(dá)通道。
? ? ? ?組件
- Sentinel∶把流量作為切入點,從流量控制、熔斷降級、系統(tǒng)負(fù)載保護(hù)等多個維度保護(hù)服務(wù)的穩(wěn)定性。
- Nacos∶一個更易于構(gòu)建云原生應(yīng)用的動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺。
- RocketMQ∶一款開源的分布式消息系統(tǒng),基于高可用分布式集群技術(shù),提供低延時的、高可靠的消息發(fā)布與訂閱服務(wù)。
- Dubbo∶ Apache Dubbo”是一款高性能Java RPC框架。
- Seata∶阿里巴巴開源產(chǎn)品,一個易于使用的高性能微服務(wù)分布式事務(wù)解決方案。
- Alibaba Cloud ACM∶一款在分布式架構(gòu)環(huán)境中對應(yīng)用配置進(jìn)行集中管理和推送的應(yīng)用配置中心產(chǎn)品。
- Alibaba Cloud OSS∶阿里云對象存儲服務(wù)(Object Storage Service,簡稱 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存儲服務(wù)。您可以在任何應(yīng)用、任何時間、任何地點存儲和訪問任意類型的數(shù)據(jù)。
- Alibaba Cloud SchedulerX∶阿里中間件團(tuán)隊開發(fā)的一款分布式任務(wù)調(diào)度產(chǎn)品,提供秒級、精準(zhǔn)、高可靠、高可用的定時(基于Cron 表達(dá)式)任務(wù)調(diào)度服務(wù)。
- Alibaba Cloud SMS∶覆蓋全球的短信服務(wù),友好、高效、智能的互聯(lián)化通訊能力,幫助企業(yè)迅速搭建客戶觸達(dá)通道。
(二)為什么選擇SpringCloud alibaba
? ? ? ? Spring Cloud Alibaba是國產(chǎn)的微服務(wù)開發(fā)一站式解決方案,與原有 Spring Cloud 兼容的同時對微服務(wù)生態(tài)進(jìn)行擴(kuò)展,通過添加少量的配置注解,便可實現(xiàn)更符合國情的微服務(wù)架構(gòu)。

? ? ? ? Spring Cloud Alibaba 對服務(wù)注冊、配置中心與負(fù)載均衡功能都整合進(jìn) Nacos,有圖形化界面,簡化了微服務(wù)架構(gòu)的復(fù)雜度,出問題的概率也會降低。原有的服務(wù)保護(hù)組件也調(diào)整為 Sentinel,相較Hystrix功能更強(qiáng)大,使用也更加友好。同時還支持了對Dubbo的調(diào)用,而且還有Seata用于支持分布式事務(wù)。
(三)阿里巴巴開源 Spring Cloud Alibaba微服務(wù)生態(tài)建設(shè)

? ? ? ?Spring Cloud Alibaba項目由兩部分組成:阿里巴巴開源組件和阿里云產(chǎn)品組件,旨在為Java開發(fā)人員在使用阿里巴巴產(chǎn)品的同時,通過利用 Spring 框架的設(shè)計模式和抽象能力,注入Spring Boot和Spring Cloud的優(yōu)勢。
(1)阿里巴巴開源組件
? ? ? ?其中阿里巴巴開源組件的命名前綴為spring-cloud-alibaba,提供了如下特性:
服務(wù)發(fā)現(xiàn)
實現(xiàn)了 Spring Cloud common 中定義的 registry 相關(guān)規(guī)范接口,引入依賴并添加一些簡單的配置即可將你的服務(wù)注冊到Nacos Server中,并且支持與Ribbon的集成。
配置管理
實現(xiàn)了 PropertySoureLocator 接口,引入依賴并添加一些簡單的配置即可從 Nacos Server 中獲取應(yīng)用配置并設(shè)置在 Spring 的 Environment 中,而且無需依賴其他組件即可支持配置的實時推送和推送狀態(tài)查詢。
高可用防護(hù)
默認(rèn)集成了 Servlet、RestTemplate、Dubbo、RocketMQ 的限流(Flow Control)降級(Circuit Breaking and Concurrency),只需要引入依賴即可完成限流降級的集成動作,并支持在應(yīng)用運(yùn)行狀態(tài)下通過 Sentinel 控制臺來實時修改限流降級的策略和閾值。
(2)阿里云產(chǎn)品組件
? ? ? ? ?阿里云的產(chǎn)品組件提供了如下特性:
應(yīng)用發(fā)現(xiàn)服務(wù)
阿里云應(yīng)用發(fā)現(xiàn)服務(wù)ANS,除了應(yīng)用發(fā)現(xiàn)的基本功能外,提供了更低成本的 SaaS 化應(yīng)用發(fā)現(xiàn)服務(wù),同時在接口的調(diào)用中加入了加密邏輯,更好地保護(hù)你的服務(wù)。
配置管理服務(wù)
阿里云配置管理服務(wù)ACM,加強(qiáng)了安全的配置管理,并且還包含了完整的推送軌跡查詢。
對象存儲服務(wù)
阿里云云存儲服務(wù)OSS,支持在任何應(yīng)用、任何時間、任何地點存儲和訪問任意類型的數(shù)據(jù), 只需要自動注入一個 OSS Client,即可直接使用存儲與下載功能。