SpringCloud總體架構概覽

SpringBoot實戰電商項目mall(20k+star)地址:github.com/macrozheng/…git

什麼是SpringCloud

目標

協調任何服務,簡化分佈式系統開發。github

簡介

構建分佈式系統不該該是複雜的,SpringCloud對常見的分佈式系統模式提供了簡單易用的編程模型,幫助開發者構建彈性、可靠、協調的應用程序。 SpringCloud是在SpringBoot的基礎上構建的,使開發者能夠輕鬆入門並快速提升工做效率。 SpringCloud爲開發人員提供了快速構建分佈式系統架構的工具,例如配置管理,服務發現,斷路器,智能路由,微代理,控制總線,一次性令牌,全局鎖定,領導選舉,分佈式會話,集羣狀態等。spring

總體架構

來自Spring官網

SpringCloud的版本關係

SpringCloud是一個由許多子項目組成的綜合項目,各子項目有不一樣的發佈節奏。 爲了管理SpringCloud與各子項目的版本依賴關係,發佈了一個清單,其中包括了某個SpringCloud版本對應的子項目版本。 爲了不SpringCloud版本號與子項目版本號混淆,SpringCloud版本採用了名稱而非版本號的命名,這些版本的名字採用了倫敦地鐵站的名字,根據字母表的順序來對應版本時間順序,例如Angel是第一個版本, Brixton是第二個版本。 當SpringCloud的發佈內容積累到臨界點或者一個重大BUG被解決後,會發佈一個"service releases"版本,簡稱SRX版本,好比Greenwich.SR2就是SpringCloud發佈的Greenwich版本的第2個SRX版本。編程

SpringCloud和SpringBoot版本對應關係

SpringCloud Version SpringBoot Version
Hoxton 2.2.x
Greenwich 2.1.x
Finchley 2.0.x
Edgware 1.5.x
Dalston 1.5.x

SpringCloud和各子項目版本對應關係

Component Edgware.SR6 Greenwich.SR2
spring-cloud-bus 1.3.4.RELEASE 2.1.2.RELEASE
spring-cloud-commons 1.3.6.RELEASE 2.1.2.RELEASE
spring-cloud-config 1.4.7.RELEASE 2.1.3.RELEASE
spring-cloud-netflix 1.4.7.RELEASE 2.1.2.RELEASE
spring-cloud-security 1.2.4.RELEASE 2.1.3.RELEASE
spring-cloud-consul 1.3.6.RELEASE 2.1.2.RELEASE
spring-cloud-sleuth 1.3.6.RELEASE 2.1.1.RELEASE
spring-cloud-stream Ditmars.SR5 Fishtown.SR3
spring-cloud-zookeeper 1.2.3.RELEASE 2.1.2.RELEASE
spring-boot 1.5.21.RELEASE 2.1.5.RELEASE
spring-cloud-task 1.2.4.RELEASE 2.1.2.RELEASE
spring-cloud-gateway 1.0.3.RELEASE 2.1.2.RELEASE
spring-cloud-openfeign 暫無 2.1.2.RELEASE

注意:Greenwich版本是基於SpringBoot 2.1.x版本構建的,不適用於1.5.x版本。隨着2019年8月SpringBoot 1.5.x版本中止維護,Edgware版本也將中止維護。安全

SpringCloud子項目簡介

Spring Cloud Config

集中配置管理工具,分佈式系統中統一的外部配置管理,默認使用Git來存儲配置,能夠支持客戶端配置的刷新及加密、解密操做。架構

Spring Cloud Netflix

Netflix OSS 開源組件集成,包括Eureka、Hystrix、Ribbon、Feign、Zuul等核心組件。負載均衡

  • Eureka:服務治理組件,包括服務端的註冊中心和客戶端的服務發現機制;
  • Ribbon:負載均衡的服務調用組件,具備多種負載均衡調用策略;
  • Hystrix:服務容錯組件,實現了斷路器模式,爲依賴服務的出錯和延遲提供了容錯能力;
  • Feign:基於Ribbon和Hystrix的聲明式服務調用組件;
  • Zuul:API網關組件,對請求提供路由及過濾功能。

Spring Cloud Bus

用於傳播集羣狀態變化的消息總線,使用輕量級消息代理連接分佈式系統中的節點,能夠用來動態刷新集羣中的服務配置。框架

Spring Cloud Consul

基於Hashicorp Consul的服務治理組件。分佈式

Spring Cloud Security

安全工具包,對Zuul代理中的負載均衡OAuth2客戶端及登陸認證進行支持。spring-boot

Spring Cloud Sleuth

SpringCloud應用程序的分佈式請求鏈路跟蹤,支持使用Zipkin、HTrace和基於日誌(例如ELK)的跟蹤。

Spring Cloud Stream

輕量級事件驅動微服務框架,能夠使用簡單的聲明式模型來發送及接收消息,主要實現爲Apache Kafka及RabbitMQ。

Spring Cloud Task

用於快速構建短暫、有限數據處理任務的微服務框架,用於嚮應用中添加功能性和非功能性的特性。

Spring Cloud Zookeeper

基於Apache Zookeeper的服務治理組件。

Spring Cloud Gateway

API網關組件,對請求提供路由及過濾功能。

Spring Cloud OpenFeign

基於Ribbon和Hystrix的聲明式服務調用組件,能夠動態建立基於Spring MVC註解的接口實現用於服務調用,在SpringCloud 2.0中已經取代Feign成爲了一等公民。

後續

後續SpringCloud系列教程將採用SpringCloud的最新版本Greenwich.SR2來說解,你們保持關注!

公衆號

mall項目全套學習教程連載中,關注公衆號第一時間獲取。

公衆號圖片
相關文章
相關標籤/搜索