阿里云優(yōu)惠神卷伶贰、最高優(yōu)惠25%脉漏,值得擁有:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ryr8l9eb&utm_source=ryr8l9eb
Spring Cloud核心框架概述
服務(wù)發(fā)現(xiàn)——Netflix Eureka
一個(gè)RESTful服務(wù)榴芳,用來定位運(yùn)行在AWS地區(qū)(Region)中的中間層服務(wù)忍啤。由兩個(gè)組件組成:Eureka服務(wù)器和Eureka客戶端引颈。Eureka服務(wù)器用作服務(wù)注冊服務(wù)器联四。Eureka客戶端是一個(gè)java客戶端沦童,用來簡化與服務(wù)器的交互仑濒、作為輪詢負(fù)載均衡器,并提供服務(wù)的故障切換支持偷遗。Netflix在其生產(chǎn)環(huán)境中使用的是另外的客戶端墩瞳,它提供基于流量、資源利用率以及出錯狀態(tài)的加權(quán)負(fù)載均衡氏豌。
客服端負(fù)載均衡——Netflix Ribbon
Ribbon喉酌,主要提供客戶側(cè)的軟件負(fù)載均衡算法。
Ribbon客戶端組件提供一系列完善的配置選項(xiàng)泵喘,比如連接超時(shí)泪电、重試、重試算法等涣旨。Ribbon內(nèi)置可插拔歪架、可定制的負(fù)載均衡組件。
斷路器——Netflix Hystrix
斷路器可以防止一個(gè)應(yīng)用程序多次試圖執(zhí)行一個(gè)操作霹陡,即很可能失敗和蚪,允許它繼續(xù)而不等待故障恢復(fù)或者浪費(fèi) CPU 周期止状,而它確定該故障是持久的。斷路器模式也使應(yīng)用程序能夠檢測故障是否已經(jīng)解決攒霹。如果問題似乎已經(jīng)得到糾正??怯疤,應(yīng)用程序可以嘗試調(diào)用操作。
服務(wù)網(wǎng)關(guān)——Netflix Zuul
類似nginx催束,反向代理的功能集峦,不過netflix自己增加了一些配合其他組件的特性。
監(jiān)控中心——Spring Boot Admin
Spring Boot Admin 用于監(jiān)控基于 Spring Boot 的應(yīng)用抠刺。
核心實(shí)戰(zhàn)架構(gòu)
架構(gòu)詳解
監(jiān)控
利用Spring Boot Admin 來監(jiān)控各個(gè)獨(dú)立Service的運(yùn)行狀態(tài)塔淤;利用Hystrix Dashboard來實(shí)時(shí)查看接口的運(yùn)行狀態(tài)和調(diào)用頻率等。
負(fù)載均衡
將服務(wù)保留的rest進(jìn)行代理和網(wǎng)關(guān)控制速妖,除了平常經(jīng)常使用的node.js高蜂、nginx外,Spring Cloud系列的zuul和rebbion罕容,可以幫我們進(jìn)行正常的網(wǎng)關(guān)管控和負(fù)載均衡备恤。
服務(wù)注冊與調(diào)用
基于Eureka來實(shí)現(xiàn)的服務(wù)注冊與調(diào)用,在Spring Cloud中使用Feign, 我們可以做到使用HTTP請求遠(yuǎn)程服務(wù)時(shí)能與調(diào)用本地方法一樣的編碼體驗(yàn)锦秒,開發(fā)者完全感知不到這是遠(yuǎn)程方法露泊,更感知不到這是個(gè)HTTP請求。
熔斷機(jī)智
因?yàn)椴扇×朔?wù)的分布旅择,為了避免服務(wù)之間的調(diào)用“雪蹦”惭笑,我采用了Hystrix的作為熔斷器,避免了服務(wù)之間的“雪蹦”砌左。
項(xiàng)目源碼
github:https://github.com/wxiaoqi/ace-security
gitchina:http://git.oschina.net/geek_qi/ace-security