前幾篇小博客記錄了我學習SpringCloud組件的過程,並與工做中所用的Dubbo框架作了一點比較,基本組件:Eureka、Ribbon、Hystrix、Feign、Zuul、Config,固然,這些目前在工做中還不曾使用,可是做爲一名程序員,選擇了IT行業,你就永遠不能被時代落下,真所謂JS的名言:「真正的大師永遠懷揣着一顆學徒的心」,機會是給有準備的人的,因此什麼都瞭解一點,生活更多彩一些。html
SpringCloud中文網:https://www.springcloud.cc/git
官網地址:https://github.com/Netflix/eureka程序員
①Eureka採用C-S的設計架構,分爲客戶端和服務端兩部分;服務器端,也被稱做是服務註冊中心,用於提供服務的註冊與發現;客戶端組件包含服務消費者與服務生產者。在應用程序運行時,Eureka客戶端向註冊中心註冊自身提供的服務並週期性的發送心跳來更新它的服務租約。同時也能夠從服務端查詢當前註冊的服務信息並把他們緩存到本地並週期性的刷新服務狀態。github
②Eureka支持高可用的配置,當集羣中有分片出現故障時,Eureka就會轉入自動保護模式,它容許分片故障期間繼續提供服務的發現和註冊,當故障分片恢復正常時,集羣中其餘分片會把他們的狀態再次同步回來。spring
③涉及註解:@EnableEurekaServer、@EnableEurekaClientdocker
官網地址:https://github.com/Netflix/ribbon緩存
①客戶端負載均衡安全
②涉及註解:@LoadBalanced、@RibbonClient(配置)服務器
官網地址:https://github.com/OpenFeign/feign架構
①Feign是一個聲明式的WebService客戶端,底層默認實現了Ribbon負載均衡,使用很是簡單:接口+註解
②涉及註解:@FeignClient("微服務名稱") 注:此註解用於接口
官網地址:https://github.com/Netflix/hystrix
①Hystrix是一個用於處理分佈式系統的延遲和容錯的開源庫,我作了服務熔斷和降級練習
②涉及註解:@HystrixCommad(fallback="方法名")、結合@FeignClient(fallbackFactory=xxx.class)
官網地址:https://github.com/Netflix/zuul
①提供代理、路由、過濾三大功能
②Zuul服務最終仍是會註冊到Eureka
③涉及註解:@EnableZuulProxy
官網地址:https://www.springcloud.cc/spring-cloud-config.html
①SpringCloud Config分爲服務端和客戶端
②SpringCloud Config爲微服務架構中的微服務提供了集中化的外部配置支持,配置服務器爲各個不一樣微服務應用的全部環境提供了一箇中心化的外部配置。
③涉及註解:@EnableConfigServer
至此、SpringCloud的基本組件:Eureka、Ribbon、Feign、Hystrix、Zuul、Config已經瞭解了,接下來i就是一些進階的,好比:
①SpringCloud Stream:數據流開發包
②SpringCloud Turbine:聚合服務器發送事件流數據的一個工具,用來監控集羣下hystrix的metrics狀況
③SpringCloud Task:提供雲端計劃任務管理、任務調度
④SpringCloud Sleuth:日誌收集工具包實現了一種分佈式追蹤解決方案,封裝了Dapper和log-based追蹤以及Zipkin和HTrace操做。
⑤SpringCloud Security:基於spring security的安全工具包,爲應用程序添加安全控制
以及其餘方面的學習,例如:
①服務部署:Kubernetes、OpenStack
②全鏈路追蹤:Zipkin,brave
③服務監控:zabbix
④SpringCloud CLI:基於Spring Boot CLI,能夠以命令行的方式快速創建雲組件
⑤全局控制:選舉leader、全局鎖、全局惟一id
⑥安全鑑權:Oauth二、openId connect
⑦自動化構建與部署:gitlab+jenkins+docker