spring cloud各組件詳解


一,Eureka

服務注冊中心,特性有失效剔除、服務保護、健康檢查。

二、Ribbon

客戶端負載均衡,特性有區域親和、重試機制。

三、Hystrix

客戶端容錯保護,特性有服務降級、服務熔斷、請求緩存、請求合並、依賴隔離。

四、Feign

聲明式rest服務調用,本質上就是Ribbon+Hystrix

 

 

前面介紹了很多Spring Cloud的組件,本篇按照自己的角度來做一次歸納。

Spring Cloud技術應用從場景上可以分為兩大類:潤物無聲類和獨挑大梁類。

 

潤物無聲,融合在每個微服務中、依賴其它組件並為其提供服務。

Ribbon,客戶端負載均衡,特性有區域親和、重試機制。

Hystrix,客戶端容錯保護,特性有服務降級、服務熔斷、請求緩存、請求合並、依賴隔離。

Feign,聲明式服務調用,本質上就是Ribbon+Hystrix

Stream,消息驅動,有Sink、Source、Processor三種通道,特性有訂閱發布、消費組、消息分區。

Bus,消息總線,配合Config倉庫修改的一種Stream實現,

Sleuth,分布式服務追蹤,需要搞清楚TraceID和SpanID以及抽樣,如何與ELK整合。

 

獨挑大梁,獨自啟動不需要依賴其它組件。

Eureka,服務注冊中心,特性有失效剔除、服務保護。

Dashboard,Hystrix儀表盤,監控集群模式和單點模式,其中集群模式需要收集器Turbine配合。

Zuul,API服務網關,功能有路由分發和過濾。

Config,分布式配置中心,支持本地倉庫、SVN、Git、Jar包內配置等模式,

 

 

每個組件都不是平白無故的產生的,是為了解決某一特定的問題而存在。

Eureka和Ribbon,是最基礎的組件,一個注冊服務,一個消費服務。

Hystrix為了優化Ribbon、防止整個微服務架構因為某個服務節點的問題導致崩潰,是個保險絲的作用。

Dashboard給Hystrix統計和展示用的,而且監控服務節點的整體壓力和健康情況。

Turbine是集群收集器,服務於Dashboard的。

Feign是方便我們程序員些更優美的代碼的。

Zuul是加在整個微服務最前沿的防火牆和代理器,隱藏微服務結點IP端口信息,加強安全保護的。

Config是為了解決所有微服務各自維護各自的配置,設置一個同意的配置中心,方便修改配置的。

Bus是因為config修改完配置后各個結點都要refresh才能生效實在太麻煩,所以交給bus來通知服務節點刷新配置的。

Stream是為了簡化研發人員對MQ使用的復雜度,弱化MQ的差異性,達到程序和MQ松耦合。

Sleuth是因為單次請求在微服務節點中跳轉無法追溯,解決任務鏈日志追蹤問題的。

 

特殊成員Zipkin,之所以特殊是因為從jar包和包名來看它不屬於Spring Cloud的一員,但是它與Spring Cloud Sleuth的抽樣日志結合的天衣無縫。乍一看它與Hystrix的Dashboard作用有重疊的部分,但是他們的側重點完全不同。Dashboard側重的是單個服務的統計和是否可用,Zipkin側重的監控環節時長。簡言之,Dashboard側重故障診斷,Ziokin側重性能優化。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM