官术网_书友最值得收藏!

4.5 了解Spring Cloud組件庫

4.5.1 Spring Cloud的整體架構

Spring Cloud的總體架構如圖4-1所示,可以看出它的體系架構非常龐大,圖4-1中不僅包含了Spring Cloud的原生組件,也包含了Netflix和Alibaba組件庫的內(nèi)容。因此,部分模塊有不止一個組件可供選擇。

圖4-1 Spring Cloud的總體架構

4.5.2 Spring Cloud的子項目

Spring Cloud的核心子項目一共有19個,具體介紹如下。

1. Spring Cloud Config

Spring Cloud Config是一個中心化的配置管理工具,它目前支持本地文件、數(shù)據(jù)庫和版本控制系統(tǒng)(GitHub和Subversion)三種存儲方式。在Spring Boot應用的啟動階段,應用程序會主動訪問Config Server拉取配置文件,并且將配置文件中的配置項注入Spring上下文中。此外,Spring Cloud Config還可以在運行期間動態(tài)推送配置屬性變更到服務集群。

2. Spring Cloud Bus

Spring Cloud Bus是一個“事件總線”,它通過分布式消息在集群環(huán)境中傳播“狀態(tài)更改”事件。它也可以與Spring Cloud Config進行無縫集成,用以批量推送配置屬性變更到業(yè)務集群。

3. Spring Cloud Consul

Spring Cloud Consul是一個服務治理框架,它對原生的Consul項目(HashiCorp公司用Go語言開發(fā)的一個項目)進行了封裝,提供了服務注冊、服務發(fā)現(xiàn)、健康檢查等服務生命周期管理的功能。

4. Spring Cloud Sleuth

Spring Cloud Sleuth為Spring Cloud應用提供了分布式環(huán)境下的調(diào)用鏈路追蹤功能。

5. Spring Cloud Stream

Spring Cloud Stream是一個輕量級的事件消息驅(qū)動框架,它簡化了應用程序與Apache Kafka、RabbitMQ消息中間件的對接。

6. Spring Cloud Gateway

Spring Cloud Gateway是一個基于Project Reactor響應式編程技術構建的網(wǎng)關路由組件,用于替代Zuul。

7. Spring Cloud OpenFeign

Spring Cloud OpenFeign通過動態(tài)代理機制簡化了REST接口的調(diào)用過程。

8. Spring Cloud Cloudfoundry

Spring Cloud Cloudfoundry組件可以將應用與Pivotal Cloud Foundry(簡稱PCF)集成,在提供服務發(fā)現(xiàn)功能的同時,簡化了SSO和OAuth2的訪問認證流程。PCF是由Pivotal公司在開源Cloud Foundry基礎上研發(fā)的商業(yè)版本,提供了云原生的應用開發(fā)PaaS(Platform as a Service)平臺。

9. Spring Cloud Open Service Broker

Spring Cloud Open Service Broker提供了一個Spring Boot框架,使開發(fā)人員能夠在Open Service Broker API的平臺(比如Cloud Foundry和Kubernetes)之上構建應用。

10. Spring Cloud Cluster

Spring Cloud Cluster為分布式環(huán)境中的組件(如ZooKeeper和Redis)提供了構建“集群”的功能,例如Leader選舉、集群狀態(tài)的一致性、全局鎖和一次性Token等常見的狀態(tài)模式的抽象層和具體實現(xiàn)。

11. Spring Cloud Security

Spring Cloud Security基于Spring Security構建,提供應用安全方面的支持。

12. Spring Cloud Data Flow

Spring Cloud Data Flow是一個云原生的流處理和批處理數(shù)據(jù)管道,主要用于大規(guī)模數(shù)據(jù)集成和實時數(shù)據(jù)處理的場景,通過簡化的DSL、可拖放的GUI組件和REST-API來簡化數(shù)據(jù)管道的構建。

13. Spring Cloud Task

Spring Cloud Task可以將微服務作為一個短期任務來執(zhí)行和調(diào)度。

14. Spring Cloud ZooKeeper

Spring Cloud ZooKeeper基于ZooKeeper的特性提供了配置管理與服務治理等功能。

15. Spring Cloud Connectors

Spring Cloud Connectors提供了一個簡單的抽象,使PaaS應用可以輕松連接各類云平臺的后臺資源。

16. Spring Cloud Starters

Spring Cloud Starters是Spring Boot風格構建的啟動項目,提供了依賴管理和“開箱即用”的使用體驗。

17. Spring Cloud CLI

Spring Cloud CLI插件可以通過命令行、Groovy和YML配置文件等方式快速構建Spring Cloud組件。

18. Spring Cloud Contract

Spring Cloud Contract是CDC(Consumer-Driver Contracts,消費者驅(qū)動契約)的一種實現(xiàn),提供了一種基于接口的測試方式。

19. Spring Cloud Function

Spring Cloud Function是一個函數(shù)計框架,用于在FaaS(Function as a Service)平臺上部署基于函數(shù)的軟件。

4.5.3 Netflix組件庫

Netflix就是大家熟知的“奈飛”公司,Netflix是位于美國的一家流媒體巨頭,它為Spring Cloud的發(fā)展做出了很大的貢獻,在Spring Cloud中很多鼎鼎大名的組件都由Netflix開發(fā)和貢獻,有些組件至今依然是Spring Cloud家族使用最為廣泛的組件。Netflix的核心組件具體介紹如下:

1. Eureka

Eureka是一款基于HTTP的服務治理組件,利用Eureka可以輕松搭建一個高可用的服務注冊中心集群,它提供了完善的服務生命周期管理功能,比如服務注冊、服務發(fā)現(xiàn)、心跳檢查、服務下線、服務剔除和自保等。

2. Hystrix

Hystrix是一款客戶端服務容錯管理組件,它提供了服務降級、服務熔斷和線程隔離等服務容錯功能。Hystrix可以與Turbine集成,利用Turbine聚合集群內(nèi)的服務調(diào)用數(shù)據(jù),再通過Hystrix Dashboard監(jiān)控大盤實時反映服務的健康狀態(tài)。

3. Ribbon

Ribbon是一個客戶端負載均衡組件,內(nèi)置了多種負載均衡策略,也支持通過擴展的方式編寫自己的負載均衡器。

4. Archaius

Archaius包含一系列配置管理API,提供動態(tài)類型化屬性、線程安全配置操作、輪詢框架和回調(diào)機制等功能。

5. Zuul

Zuul是一個路由組件,它可以作為服務層網(wǎng)關入口,還可以提供動態(tài)路由、限流、性能監(jiān)測和安全等功能。

4.5.4 Alibaba組件庫

阿里近年來逐漸加大了開源方向上的投入,在Spring Cloud項目中也逐漸大放異彩。由阿里研發(fā)并開源的組件具體介紹如下:

1. Sentinel

Sentinel是一個流控組件,從流量控制、熔斷降級、負載保護等多個維度保障系統(tǒng)的可用性,它還可以與Nacos和Apollo等組件集成,對流控規(guī)則進行持久化。

2. Nacos

Nacos是一個服務治理組件,同時也可以作為配置中心來使用,它提供了服務發(fā)現(xiàn)和配置管理等功能。

3. RocketMQ Binder

RocketMQ Binder作為Spring Cloud Stream的底層組件,承擔了與RocketMQ集成的工作。

4. Seata

Seata是一個分布式事務框架,它提供了AT、TCC和Saga三種分布式解決方案。

5. Dubbo RPC

Dubbo是一個高性能的RPC(遠程方法調(diào)用)框架。

6. Alibaba Cloud Object Storage Service

Alibaba Cloud Object Storage Service是一個加密安全的云存儲服務。

主站蜘蛛池模板: 朝阳县| 东方市| 平塘县| 万山特区| 全椒县| 沁阳市| 北票市| 昌乐县| 沐川县| 塔河县| 安塞县| 东山县| 习水县| 讷河市| 岱山县| 布拖县| 泸水县| 腾冲县| 龙门县| 延吉市| 新丰县| 成都市| 沽源县| 灌南县| 侯马市| 南陵县| 广平县| 承德市| 衡阳县| 莲花县| 永康市| 合阳县| 同心县| 交口县| 永修县| 洛阳市| 天台县| 称多县| 蓬莱市| 常宁市| 台北县|