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

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

spring cloud 是微服務分佈式部署的一套解決方案。它涵蓋了不少組件,好比配置中心、服務發現註冊、負載均衡、阻斷器、消息總線、數據監控等,這些組件都是爲微服務分佈式部署中幾乎都會遇到的問題。nginx

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

Spring Cloud與Dubbo的區別

  1. 微服務涵蓋範圍不一樣:dubbo專一於服務治理,只涵蓋了微服務架構的某些方面。而spring cloud涵蓋了微服務架構的方方面面。
  2. 服務調用方式不一樣:spring cloud基於http協議進行調用,dubbo基於tcp協議調用,因此dubbo在代碼上調用方和服務方依賴性強

Eureka(服務發現註冊中心)

和zookeeper / consul 相似segmentfault

Hystrix(熔斷器)

Hystrix 會在某個服務連續調用 N 次不響應的狀況下,當即通知調用端調用失敗,避免調用端持續等待而影響了總體服務。Hystrix 間隔時間會再次檢查此服務,若是服務恢復將繼續提供服務。

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

Spring Cloud Config(配置中心)

配置的集中化管理,當配置在服務運行期間發生改變的時候能夠經過refresh功能刷新配置。生產環境建議配置中心集羣化部署已保證其高可用性。負載均衡

Spring Cloud Bus (通信組件)

經過spring cloud bus能夠鏈接各個微服務節點,當須要給多個或者全部服務節點發送某個信息的時候,便可經過spring cloud bus來完成。tcp

好比:當某個配置發生改變後,須要通知對應的服務實例刷新配置,這個時候能夠經過sprIng cloud bus來完成。其工做原理以下:
分佈式

Spring Cloud Zuul (服務網關)

請求轉發,感受有點相似nginx的角色微服務

Spring Cloud Sleuth (鏈路跟蹤)

分佈式鏈路跟蹤須要 Sleuth+Zipkin 結合來實現。工具

參考文獻

Spring Cloud(零):微服務的那些事兒
相關文章
相關標籤/搜索