1. 程式人生 > 程式設計 >Spring Cloud(零):微服務的那些事兒

Spring Cloud(零):微服務的那些事兒

spring cloud 是微服務分散式部署的一套解決方案。它涵蓋了很多元件,比如配置中心、服務發現註冊、負載均衡、阻斷器、訊息匯流排、資料監控等,這些元件都是為微服務分散式部署中幾乎都會遇到的問題。

微服務:通俗的講就是功能相關的的一個集合作為一個服務單獨進行部署,那麼很多個這樣的集合就構成了微服務。用專業一點的俗語講就是把滿足 srp(single_responsibility_principle)原則的的服務。

Spring Cloud與Dubbo的區別

  1. 微服務涵蓋範圍不同:dubbo專注於服務治理,只涵蓋了微服務架構的某些方面。而spring cloud涵蓋了微服務架構的方方面面。
  2. 服務呼叫方式不同:spring cloud基於http協議進行呼叫,dubbo基於tcp協議呼叫,所以dubbo在程式碼上呼叫方和服務方依賴性強

Eureka(服務發現註冊中心)

和zookeeper / consul 類似

Hystrix(熔斷器)

Hystrix 會在某個服務連續呼叫 N 次不響應的情況下,立即通知呼叫端呼叫失敗,避免呼叫端持續等待而影響了整體服務。Hystrix 間隔時間會再次檢查此服務,如果服務恢復將繼續提供服務。

熔斷監控工具: Hystrix Dashbord和Turbine。 turbine用於各個在微服務中收集熔斷資料, hystrix dashbord則用於展示這些資料。顯示效果如下:

Spring Cloud Config(配置中心)

配置的集中化管理,當配置在服務執行期間發生改變的時候可以通過refresh功能重新整理配置。生產環境建議配置中心叢集化部署已保證其高可用性。

Spring Cloud Bus (通訊元件)

通過spring cloud bus可以連線各個微服務節點,當需要給多個或者所有服務節點傳送某個資訊的時候,即可通過spring cloud bus來完成。

比如:當某個配置發生改變後,需要通知對應的服務例項重新整理配置,這個時候可以通過sprIng cloud bus來完成。其工作原理如下:

Spring Cloud Zuul (服務閘道器)

請求轉發,感覺有點類似nginx的角色

Spring Cloud Sleuth (鏈路跟蹤)

分散式鏈路跟蹤需要 Sleuth+Zipkin 結合來實現。

參考文獻

Spring Cloud(零):微服務的那些事兒