1. 程式人生 > 其它 >Springcloud 學習筆記01-整體架構

Springcloud 學習筆記01-整體架構

構建分散式系統不應該是複雜的,SpringCloud對常見的分散式系統模式提供了簡單易用的程式設計模型,幫助開發者構建彈性、可靠、協調的應用程式。 SpringCloud是在SpringBoot的基礎上構建的,使開發者可以輕鬆入門並快速提高工作效率。 SpringCloud為開發人員提供了快速構建分散式系統架構的工具,例如配置管理,服務發現,斷路器,智慧路由,微代理,控制匯流排,一次性令牌,全域性鎖定,領導選舉,分散式會話,叢集狀態等。

01 整體架構

SpringCloud是一個由許多子專案組成的綜合專案,各子專案有不同的釋出節奏。 為了管理SpringCloud與各子專案的版本依賴關係,釋出了一個清單,其中包括了某個SpringCloud版本對應的子專案版本。

SpringCloud VersionSpringBoot 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