spring cloud 微服務架構學習筆記

什麼是微服務架構

“微服務”一詞源於Martin Fowler的名爲Microservices的博文。簡單地說,微服務是系統架構上的一種設計風格,它的主旨是將一個原本獨立的系統拆分成許多個小型服務,這些小型服務都在各自獨立的進程中運行,服務之間通過RPC/RESTFul API進行通信協作。

微服務九大特徵

  1. 服務組件化
  2. 按業務組織團隊
  3. 做“產品”的態度
  4. 智能端點與啞管道
  5. 去中心化治理
  6. 去中心化管理數據
  7. 基礎設施自動化
  8. 容錯設計
  9. 演進式設計

Spring Cloud 微服務架構原理

微服務化後,微服務間我們通過 http restful api 通信,問題是調用的服務是一個集羣,我們怎麼知道應該請求哪一個服務?這裏引入Eureka 來解決,微服務將自己的相關信息註冊到Eureka Server, 同時又能拿到別的服務的信息,這樣本地客戶端我們再通過ribbon決策出請求哪一個服務,做負載均衡。然後我們再通過 hystrix 做好熔斷,避免個別服務問題導致整個系統雪崩的問題。微服務化後,服務實例變多了,這些實例很多配置都是相同的,這裏我們使用 Spring Cloud Config 來統一做配置,避免配置複雜繁瑣不一致的問題。以前我們通過nginx這類反向代理軟件來做網關路由,這類需要手動的去維護路由規則和可用服務列表,比較麻煩。spring cloud 提供zuul網關來幫我們簡化這部分工作,可用的服務列表直接從eureka裏取,不需要手動維護了。

 

Spring Cloud 常用組件

 

  1. 服務發現——Netflix Eureka
  2. 客服端負載均衡——Netflix Ribbon
  3. 斷路器——Netflix Hystrix
  4. 服務網關——Netflix Zuul
  5. 分佈式配置——Spring Cloud Config

 

Spring Cloud vs Dubbo

  1. Spring Cloud是Dubbo的超集,定位爲一套完整的微服務解決方案,而Dubbo只是專注於RPC和服務治理。
  2. Dubbo 採用RPC 長鏈接通信,比Spring Cloud 的http restful 性能要好些,對響應時間要求很高的系統Dubbo有優勢
  3. Dubbo 的註冊中心依賴 zeekeeper,如果 zeekeeper 出問題就不可用了,而Spring Cloud 的Eureka支持高可用集羣
  4. Spring Cloud 基於 Spring Boot ,易用性強於Dubbo
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章