Spring Cloud(零):微服務的那些事兒
阿新 • • 發佈:2019-12-31
spring cloud 是微服務分散式部署的一套解決方案。它涵蓋了很多元件,比如配置中心、服務發現註冊、負載均衡、阻斷器、訊息匯流排、資料監控等,這些元件都是為微服務分散式部署中幾乎都會遇到的問題。
微服務:通俗的講就是功能相關的的一個集合作為一個服務單獨進行部署,那麼很多個這樣的集合就構成了微服務。用專業一點的俗語講就是把滿足 srp(single_responsibility_principle)原則的的服務。
Spring Cloud與Dubbo的區別
- 微服務涵蓋範圍不同:dubbo專注於服務治理,只涵蓋了微服務架構的某些方面。而spring cloud涵蓋了微服務架構的方方面面。
- 服務呼叫方式不同: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 結合來實現。