javascript
Spring Cloud各组件总结归纳
前面介紹了很多Spring Cloud的組件,本篇按照自己的角度來做一次歸納。
Spring Cloud技術(shù)應(yīng)用從場景上可以分為兩大類:潤物無聲類和獨挑大梁類。
?
潤物無聲,融合在每個微服務(wù)中、依賴其它組件并為其提供服務(wù)。
Ribbon,客戶端負載均衡,特性有區(qū)域親和、重試機制。
Hystrix,客戶端容錯保護,特性有服務(wù)降級、服務(wù)熔斷、請求緩存、請求合并、依賴隔離。
Feign,聲明式服務(wù)調(diào)用,本質(zhì)上就是Ribbon+Hystrix
Stream,消息驅(qū)動,有Sink、Source、Processor三種通道,特性有訂閱發(fā)布、消費組、消息分區(qū)。
Bus,消息總線,配合Config倉庫修改的一種Stream實現(xiàn),
Sleuth,分布式服務(wù)追蹤,需要搞清楚TraceID和SpanID以及抽樣,如何與ELK整合。
?
獨挑大梁,獨自啟動不需要依賴其它組件。
Eureka,服務(wù)注冊中心,特性有失效剔除、服務(wù)保護。
Dashboard,Hystrix儀表盤,監(jiān)控集群模式和單點模式,其中集群模式需要收集器Turbine配合。
Zuul,API服務(wù)網(wǎng)關(guān),功能有路由分發(fā)和過濾。
Config,分布式配置中心,支持本地倉庫、SVN、Git、Jar包內(nèi)配置等模式,
?
?
每個組件都不是平白無故的產(chǎn)生的,是為了解決某一特定的問題而存在。
Eureka和Ribbon,是最基礎(chǔ)的組件,一個注冊服務(wù),一個消費服務(wù)。
Hystrix為了優(yōu)化Ribbon、防止整個微服務(wù)架構(gòu)因為某個服務(wù)節(jié)點的問題導(dǎo)致崩潰,是個保險絲的作用。
Dashboard給Hystrix統(tǒng)計和展示用的,而且監(jiān)控服務(wù)節(jié)點的整體壓力和健康情況。
Turbine是集群收集器,服務(wù)于Dashboard的。
Feign是方便我們程序員寫更優(yōu)美的代碼的。
Zuul是加在整個微服務(wù)最前沿的防火墻和代理器,隱藏微服務(wù)結(jié)點IP端口信息,加強安全保護的。
Config是為了解決所有微服務(wù)各自維護各自的配置,設(shè)置一個統(tǒng)一的配置中心,方便修改配置的。
Bus是因為config修改完配置后各個結(jié)點都要refresh才能生效實在太麻煩,所以交給bus來通知服務(wù)節(jié)點刷新配置的。
Stream是為了簡化研發(fā)人員對MQ使用的復(fù)雜度,弱化MQ的差異性,達到程序和MQ松耦合。
Sleuth是因為單次請求在微服務(wù)節(jié)點中跳轉(zhuǎn)無法追溯,解決任務(wù)鏈日志追蹤問題的。
?
特殊成員Zipkin,之所以特殊是因為從jar包和包名來看它不屬于Spring Cloud的一員,但是它與Spring Cloud Sleuth的抽樣日志結(jié)合的天衣無縫。乍一看它與Hystrix的Dashboard作用有重疊的部分,但是他們的側(cè)重點完全不同。Dashboard側(cè)重的是單個服務(wù)的統(tǒng)計和是否可用,Zipkin側(cè)重的監(jiān)控環(huán)節(jié)時長。簡言之,Dashboard側(cè)重故障診斷,Ziokin側(cè)重性能優(yōu)化。
參考:https://blog.csdn.net/yejingtao703/article/details/78331442/
總結(jié)
以上是生活随笔為你收集整理的Spring Cloud各组件总结归纳的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dlib人脸特征点对齐
- 下一篇: gradle idea java ssm