spring cloud 各元件快速認知
主要功能模組:
Eureka:雲端服務發現,一個基於 REST 的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移。分析:spring cloud 家族的基礎模組,用於服務治理(服務發現、註冊更新等),可以用zookeeper代替(個人更傾向eureka,因為感覺在這裡CAP理論中AP比CP更合適),2.x eureka不再繼續維護,但感覺不升級也基本夠用了,當然也可以替換為 Consul 。
Feign:Feign是一種宣告式、模板化的HTTP客戶端。分析:很好的呼叫服務工具,整合了Ribbon和Hystrix。
Hystrix:熔斷器,容錯管理工具,旨在通過熔斷機制控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。分析:方便實現,降級回滾、熔斷、快速失敗等操作。Hystrix有兩種隔離策略執行緒隔離和訊號量隔離,推薦一般使用執行緒隔離(官方、個人),只有負載(同等的資源支援的訪問量)特別高的非網路呼叫才適合訊號量隔離,因為執行緒隔離HystrixCommand會在單獨的執行緒執行,不影響業務執行緒。
Ribbon:提供雲端負載均衡,有多種負載均衡策略可供選擇,可配合服務發現和斷路器使用。瞭解:由六部分組成,ServerList 服務列表(一般基於服務發現),ServerListFilter服務列表過濾器(整合spring cloud 預設ZonePreferenceServerListFilter,),
Zuul:Zuul 是在雲平臺上提供動態路由,監控,彈性,安全等邊緣服務的框架。Zuul 相當於是裝置和 Netflix 流應用的 Web 網站後端所有請求的前門。
配置支援模組:
Spring Cloud Config:配置管理工具包,讓你可以把配置放到遠端伺服器,集中化管理叢集配置,目前支援本地儲存、Git以及Subversion。
Spring Cloud Bus:事件、訊息匯流排,用於在叢集(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署。
監控運維模組
Spring Cloud Sleuth:日誌收集工具包,封裝了Dapper和log-based追蹤以及Zipkin和HTrace操作,為SpringCloud應用實現了一種分散式追蹤解決方案。建議配合:ELK+Zipkin
Turbine:Turbine是聚合伺服器傳送事件流資料的一個工具,用來監控叢集下hystrix的metrics情況。
Spring Cloud Security:基於spring security的安全工具包,為你的應用程式新增安全控制。個人:快速實現安全驗證、可以快速搭建oauht2體系、jwt認證協議等。
其它簡介(根據需求選配):
Spring Cloud for Cloud Foundry:通過Oauth2協議繫結服務到CloudFoundry,CloudFoundry是VMware推出的開源PaaS雲平臺。
Spring Cloud Data Flow:大資料操作工具,作為Spring XD的替代產品,它是一個混合計算模型,結合了流資料與批量資料的處理方式。
Spring Cloud Zookeeper:操作Zookeeper的工具包,用於使用zookeeper方式的服務發現和配置管理。
Spring Cloud Stream:資料流操作開發包,封裝了與Redis,Rabbit、Kafka等傳送接收訊息。
Spring Cloud CLI:基於 Spring Boot CLI,可以讓你以命令列方式快速建立雲元件。
Spring Cloud Task:提供雲端計劃任務管理、任務排程。
Spring Cloud Connectors:便於雲端應用程式在各種PaaS平臺連線到後端,如:資料庫和訊息代理服務。
Spring Cloud Cluster:提供Leadership選舉,如:Zookeeper, Redis, Hazelcast, Consul等常見狀態模式的抽象和實現。
Spring Cloud Starters:Spring Boot式的啟動專案,為Spring Cloud提供開箱即用的依賴管理。
Archaius:配置管理API,包含一系列配置管理API,提供動態型別化屬性、執行緒安全配置操作、輪詢框架、回撥機制等功能。
Consul:封裝了Consul操作,consul是一個服務發現與配置工具,與Docker容器可以無縫整合。
Sidecar:異構服務解決方案,整合一個歷史專案或者其它語言的專案