天天看點

(一)Spring Cloud 介紹 -- 筆記簡介版本說明

  • 簡介
  • 版本說明
    • 版本名與版本号

實時微服務架構初期,需要被考慮的内容:

服務治理:阿裡的Dubbo和當當再次擴充的DubboX、Netflix的Eureka、Apache的Consul等。

分布式配置管理:百度的Disconf、Netflix的Archaius、360的QConf、Spring Cloud的Config、淘寶的Diamond等。

批量任務:當擔的Elastic-Job、LinkedIn的Azkaban、Spring Cloud的Task等。

服務跟蹤:京東的Hydra、Spring Cloud的Sleuth、Twitter的Zipkin等。

簡介

Spring Cloud是一個基于Spring Boot實作的微服務架構開發工具。它為微服務架構中涉及的配置管理、服務治理、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和叢集狀态管理等操作提供了一種簡單的開發方式。

Spring Cloud包含了很多子項目:

  • Spring Cloud Config:配置管理工具
  • Spring Cloud Netflix:核心元件,對多個Netflix開源套件進行整合。
    • Euraka:服務治理元件,包含服務注冊中心、服務注冊與發現機制的實作。
    • Hystrix:容錯管理元件,實作斷路器模式,幫助服務依賴中出現的延遲和為故障提供強大的容錯能力。
    • Ribbon:用戶端負載均衡的服務調用元件。
    • Feign:基于Ribbon和Hystrix的聲明式服務調用元件。
    • Zuul:網關元件,提供智能路由、通路過濾等功能。
    • Archaius:外部化配置元件。
  • Spring Cloud Bus:時間、消息總線,用于傳播叢集中的狀态變化或事件,以觸發後續的處理,比如用來動态重新整理配置等。
  • Spring Cloud Cluster:針對ZooKeeper、Redis、Hazelcast、Consul的選舉算法和通用狀态模式的實作。
  • Spring Cloud Cloudfoundry:與Pivotal Cloudfoundry的整合支援
  • Spring Cloud Consul:服務發現與配置管理工具。
  • Spring Cloud Stream:通過Redis、Rabbit或者Kafka實作的消費微服務,可以通過簡單的聲明式模型來發送和接收消息。
  • Spring Cloud AWS:用于簡化整合Amazon Web Service的元件。
  • Spring Cloud Security:安全工具包,提供在Zuul代理中對OAuth2用戶端請求的中繼器。
  • Spring Cloud Sleuth:Spring Cloud應用的分布式跟蹤實作,可以完美整合Zipkin。
  • Spring Cloud ZooKeeper:基于ZooKeeper的服務發現與配置管理元件。
  • Spring Cloud Starters:Spring Cloud的基礎元件,它是基于Spring Boot風格項目的基礎依賴子產品。
  • Spring Cloud CLI:用于在Groovy中快速建立Spring Cloud應用的Spring Boot CLI插件。
  • ……

版本說明

版本名與版本号

Spring Cloud不像Spring社群其他一些項目那樣相對獨立,它是一個擁有諸多子項目的大型綜合項目,可以說是對微服務架構解決方案的綜合套件組合, 其包含的各個子項目也都獨立進行内容更新與疊代,各自都維護着自己的釋出版本号。為了管理每個版本的項目清單,避免Spring Cloud版本号與其子項目的版本号相混淆,沒有采用版本号的方式,而是通過命名的方式。

這些版本的名字采用了倫敦地鐵站的名字,根據字母表的順序來對應版本時間順序,比如最早的Release版本為Angel,第二個Release版本為Brixton… …

當一個版本的Spring Cloud項目的釋出内容積累到臨界點或者一個嚴重bug解決可用後,就會釋出一個“service releases”版本,簡稱SRX版本,其中X是一個遞增的數字,是以Brixton.SR5就是Brixton的第5個Release版本。

在使用Brixton版本的時候需要注意Spring Boot的版本,必須使用1.3.x版本,而不能使用1.4.x版本,否則會出現各種問題。若一定要使用Spring 1.4.x版本的話,必須将Spring Cloud版本更新到Canden版本,目前Camden已經釋出Release版本,是以可以放心使用。Camden版本雖然可以相容Brixton版本的各種實作方法,但是再更新後會發現一些方法已經被标注為過期。

繼續閱讀