Springcloud 學習筆記01-整體架構
構建分散式系統不應該是複雜的,SpringCloud對常見的分散式系統模式提供了簡單易用的程式設計模型,幫助開發者構建彈性、可靠、協調的應用程式。 SpringCloud是在SpringBoot的基礎上構建的,使開發者可以輕鬆入門並快速提高工作效率。 SpringCloud為開發人員提供了快速構建分散式系統架構的工具,例如配置管理,服務發現,斷路器,智慧路由,微代理,控制匯流排,一次性令牌,全域性鎖定,領導選舉,分散式會話,叢集狀態等。
01 整體架構
SpringCloud是一個由許多子專案組成的綜合專案,各子專案有不同的釋出節奏。 為了管理SpringCloud與各子專案的版本依賴關係,釋出了一個清單,其中包括了某個SpringCloud版本對應的子專案版本。
SpringCloud Version | SpringBoot Version |
---|---|
Hoxton | 2.2.x |
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
02 SpringCloud子專案簡介
2.1 Spring Cloud Netflix
Netflix OSS 開源元件整合,包括Eureka、Hystrix、Ribbon、Feign、Zuul等核心元件。
- Eureka:服務治理元件,包括服務端的註冊中心和客戶端的服務發現機制;
- Ribbon:負載均衡的服務呼叫元件,具有多種負載均衡呼叫策略;
- Hystrix:服務容錯元件,實現了斷路器模式,為依賴服務的出錯和延遲提供了容錯能力;
- Feign:基於Ribbon和Hystrix的宣告式服務呼叫元件;
- Zuul:API閘道器元件,對請求提供路由及過濾功能。
2.2 Spring Cloud Bus
用於傳播叢集狀態變化的訊息匯流排,使用輕量級訊息代理連結分散式系統中的節點,可以用來動態重新整理叢集中的服務配置。
2.3 Spring Cloud Consul
基於Hashicorp Consul的服務治理元件。
2.4 Spring Cloud Security
安全工具包,對Zuul代理中的負載均衡OAuth2客戶端及登入認證進行支援。
2.5 Spring Cloud Sleuth
SpringCloud應用程式的分散式請求鏈路跟蹤,支援使用Zipkin、HTrace和基於日誌(例如ELK)的跟蹤。
2.6 Spring Cloud Stream
輕量級事件驅動微服務框架,可以使用簡單的宣告式模型來發送及接收訊息,主要實現為Apache Kafka及RabbitMQ。
2.7 Spring Cloud Task
用於快速構建短暫、有限資料處理任務的微服務框架,用於嚮應用中新增功能性和非功能性的特性。
2.8 Spring Cloud Zookeeper
基於Apache Zookeeper的服務治理元件。
2.9 Spring Cloud Gateway
API閘道器元件,對請求提供路由及過濾功能。
2.10 Spring Cloud OpenFeign
基於Ribbon和Hystrix的宣告式服務呼叫元件,可以動態建立基於Spring MVC註解的介面實現用於服務呼叫,在SpringCloud 2.0中已經取代Feign成為了一等公民。
參考文獻:http://www.macrozheng.com/#/cloud/springcloud.md