服務註冊中心,特性有失效剔除、服務保護、健康檢查。程序員
客戶端負載均衡,特性有區域親和、重試機制。緩存
客戶端容錯保護,特性有服務降級、服務熔斷、請求緩存、請求合併、依賴隔離。安全
聲明式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側重性能優化。