天天看點

微服務架構學習(四):Spring Cloud

前言

前面學習了解了微服務架構的常見選型,本次就深入的學習了解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

核心子項目

  1. Spring Cloud Netflix:核心元件,可以對多個Netflix OSS開源套件進行整合,包括以下幾個元件:

    Eureka:服務治理元件,包含服務注冊與發現

    Hystrix:容錯管理元件,實作了熔斷器

    Ribbon:用戶端負載均衡的服務調用元件

    Feign:基于Ribbon和Hystrix的聲明式服務調用元件

    Zuul:網關元件,提供智能路由、通路過濾等功能

    Archaius:外部化配置元件

  2. Spring Cloud Config:配置管理工具,實作應用配置的外部化存儲,支援用戶端配置資訊重新整理、加密/解密配置内容等。
  3. Spring Cloud Bus:事件、消息總線,用于傳播叢集中的狀态變化或事件,以及觸發後續的處理
  4. Spring Cloud Security:基于spring security的安全工具包,為我們的應用程式添加安全控制
  5. Spring Cloud Consul :

    封裝了Consul操作,Consul是一個服務發現與配置工具(與Eureka作用類似),與Docker容器可以無縫內建

Spring Cloud元件架構流程

微服務架構學習(四):Spring Cloud

流程:

  1. 請求統一通過 API 網關(Zuul)來通路内部服務。
  2. 網關接收到請求後,從注冊中心(Eureka)擷取可用服務。
  3. 由 Ribbon 進行均衡負載後,分發到後端具體執行個體。
  4. 微服務之間通過 Feign 進行通信處理業務。
  5. Hystrix 負責處理服務逾時熔斷。
  6. Turbine 監控服務間的調用和熔斷相關名額。

經過以上内容的了解,對Spring Cloud這一系列架構有了基礎的認知與了解,還需深入的進行學習。

總結

針對Spring Cloud架構選型的學習,整體上感覺很匆忙,導緻學習到的知識也僅僅停留在表面,沒有深入進入,後面我會繼續挑時間,進行進一步的學習,争取能夠有所收獲,有所感悟。

繼續閱讀