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側重性能優化。
轉載于:https://www.cnblogs.com/yeyusheng/p/8539141.html
總結
以上是生活随笔為你收集整理的spring cloud各组件详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CodeForces 940E
- 下一篇: 近几年难得一见的一道好推理题