springcloud是微服務架構的集大成者,將一系列優秀的組件進行了整合?;趕pringboot構建,對我們熟悉spring的程序員來說,上手比較容易。
通過一些簡單的注解,我們就可以快速的在應用中配置一下常用模塊并構建龐大的分布式系統。
SpringCloud的組件相當繁雜,擁有諸多子項目。重點關注Netflix
,springcloud的版本說明:
springcloud項目是由多個獨立項目集合而成的,每個項目都是獨立的,各自進行自己的迭代和版本發布。所以springcloud不方便使用版本號來管理,而是使用版本名。以避免和子項目版本號的沖突。
版本名的來源是倫敦的地鐵站名,以字母排序。比如最早的Release版本為Angel,第二個Release版本為Brixton。。。
當一個版本的update積累的比較多或者解決了一個嚴重bug時,會發布一個ServiceRelease版本,簡稱SR,后面帶的數字就是該大版本下的第一次發布。
從官網上看,springcloud的F版本是基于springboot的2.0.x構建,之前的是基于springboot的1.5.x構建
下面只簡單介紹下經常用的5個
服務發現——Netflix Eureka
客服端負載均衡——Netflix Ribbon
斷路器——Netflix Hystrix
服務網關——Netflix Zuul
分布式配置——Spring Cloud Config
Eureka
作用:實現服務治理(服務注冊與發現)
簡介:Spring Cloud Eureka是Spring Cloud Netflix項目下的服務治理模塊。
由兩個組件組成:Eureka服務端和Eureka客戶端。
Eureka服務端用作服務注冊中心。支持集群部署。
Eureka客戶端是一個java客戶端,用來處理服務注冊與發現。
在應用啟動時,Eureka客戶端向服務端注冊自己的服務信息,同時將服務端的服務信息緩存到本地。客戶端會和服務端周期性的進行心跳交互,以更新服務租約和服務信息。
Ribbon
作用:Ribbon,主要提供客戶側的軟件負載均衡算法。
簡介:Spring Cloud Ribbon是一個基于HTTP和TCP的客戶端負載均衡工具,它基于Netflix Ribbon實現。通過Spring Cloud的封裝,可以讓我們輕松地將面向服務的REST模版請求自動轉換成客戶端負載均衡的服務調用。
注意看上圖,關鍵點就是將外界的rest調用,根據負載均衡策略轉換為微服務調用。Ribbon有比較多的負載均衡策略,以后專門講解。
Hystrix
作用:斷路器,保護系統,控制故障范圍。
簡介:為了保證其高可用,單個服務通常會集群部署。由于網絡原因或者自身的原因,服務并不能保證100%可用,如果單個服務出現問題,調用這個服務就會出現線程阻塞,此時若有大量的請求涌入,Servlet容器的線程資源會被消耗完畢,導致服務癱瘓。服務與服務之間的依賴性,故障會傳播,會對整個微服務系統造成災難性的嚴重后果,這就是服務故障的“雪崩”效應。
Zuul
作用:api網關,路由,負載均衡等多種作用
簡介:類似nginx,反向代理的功能,不過netflix自己增加了一些配合其他組件的特性。
在微服務架構中,后端服務往往不直接開放給調用端,而是通過一個API網關根據請求的url,路由到相應的服務。當添加API網關后,在第三方調用端和服務提供方之間就創建了一面墻,這面墻直接與調用方通信進行權限控制,后將請求均衡分發給后臺服務端。
Config
作用:配置管理
簡介:SpringCloud Config提供服務器端和客戶端。服務器存儲后端的默認實現使用git,因此它輕松支持標簽版本的配置環境,以及可以訪問用于管理內容的各種工具。
這個還是靜態的,得配合Spring Cloud Bus實現動態的配置更新。
百度去下載
鏈接:https://pan.baidu.com/s/1n3Y99ooosLPbLPlnLE3_Ag
如需要獲取提取碼,請先 登錄
本文為張軍原創文章,轉載無需和我聯系,但請注明來自張軍的軍軍小站,個人博客http://m.eyofj.com
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
