前言
前面學習了解了微服務架構的常見選型,本次就深入的學習了解Spring Cloud這種選型,考慮是否适用于我目前參與的項目選擇
概念
Spring Cloud是一系列架構的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現注冊、配置中心、消息總線、負載均衡、斷路器、資料監控等,都可以用Spring Boot的開發風格做到一鍵啟動和部署。Spring Cloud并沒有重複制造輪子,它隻是将各家公司開發的比較成熟、經得起實際考驗的服務架構組合起來,通過Spring Boot風格進行再封裝屏蔽掉了複雜的配置和實作原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。
從度娘看來的介紹,描述的已經大概的說明了,Spring Cloud是一系列的架構集合起來,Spring Cloud的子項目,大緻可分成兩類,一類是對現有成熟架構”Spring Boot化”的封裝和抽象,也是數量最多的項目;第二類是開發了一部分分布式系統的基礎設施的實作,如Spring Cloud Stream扮演的就是kafka, ActiveMQ這樣的角色。我們細看一下第一類子項目中的核心項目。
Spring Cloud完整技術
核心子項目
-
Spring Cloud Netflix:核心元件,可以對多個Netflix OSS開源套件進行整合,包括以下幾個元件:
Eureka:服務治理元件,包含服務注冊與發現
Hystrix:容錯管理元件,實作了熔斷器
Ribbon:用戶端負載均衡的服務調用元件
Feign:基于Ribbon和Hystrix的聲明式服務調用元件
Zuul:網關元件,提供智能路由、通路過濾等功能
Archaius:外部化配置元件
- Spring Cloud Config:配置管理工具,實作應用配置的外部化存儲,支援用戶端配置資訊重新整理、加密/解密配置内容等。
- Spring Cloud Bus:事件、消息總線,用于傳播叢集中的狀态變化或事件,以及觸發後續的處理
- Spring Cloud Security:基于spring security的安全工具包,為我們的應用程式添加安全控制
-
Spring Cloud Consul :
封裝了Consul操作,Consul是一個服務發現與配置工具(與Eureka作用類似),與Docker容器可以無縫內建
Spring Cloud元件架構流程
流程:
- 請求統一通過 API 網關(Zuul)來通路内部服務。
- 網關接收到請求後,從注冊中心(Eureka)擷取可用服務。
- 由 Ribbon 進行均衡負載後,分發到後端具體執行個體。
- 微服務之間通過 Feign 進行通信處理業務。
- Hystrix 負責處理服務逾時熔斷。
- Turbine 監控服務間的調用和熔斷相關名額。
經過以上内容的了解,對Spring Cloud這一系列架構有了基礎的認知與了解,還需深入的進行學習。
總結
針對Spring Cloud架構選型的學習,整體上感覺很匆忙,導緻學習到的知識也僅僅停留在表面,沒有深入進入,後面我會繼續挑時間,進行進一步的學習,争取能夠有所收獲,有所感悟。