Spring Cloud 核心綜合實戰(zhàn)

阿里云優(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

Eureka

一個RESTful服務(wù),用來定位運行在AWS地區(qū)(Region)中的中間層服務(wù)。由兩個組件組成:Eureka服務(wù)器和Eureka客戶端。Eureka服務(wù)器用作服務(wù)注冊服務(wù)器。Eureka客戶端是一個java客戶端,用來簡化與服務(wù)器的交互、作為輪詢負(fù)載均衡器,并提供服務(wù)的故障切換支持。Netflix在其生產(chǎn)環(huán)境中使用的是另外的客戶端,它提供基于流量、資源利用率以及出錯狀態(tài)的加權(quán)負(fù)載均衡。

客服端負(fù)載均衡——Netflix Ribbon

Ribbon

Ribbon,主要提供客戶側(cè)的軟件負(fù)載均衡算法。
Ribbon客戶端組件提供一系列完善的配置選項,比如連接超時、重試、重試算法等。Ribbon內(nèi)置可插拔、可定制的負(fù)載均衡組件。

斷路器——Netflix Hystrix

image.png

斷路器可以防止一個應(yīng)用程序多次試圖執(zhí)行一個操作,即很可能失敗,允許它繼續(xù)而不等待故障恢復(fù)或者浪費 CPU 周期,而它確定該故障是持久的。斷路器模式也使應(yīng)用程序能夠檢測故障是否已經(jīng)解決。如果問題似乎已經(jīng)得到糾正??,應(yīng)用程序可以嘗試調(diào)用操作。

服務(wù)網(wǎng)關(guān)——Netflix Zuul

zuul

類似nginx,反向代理的功能,不過netflix自己增加了一些配合其他組件的特性。

監(jiān)控中心——Spring Boot Admin

Spring Boot Admin

Spring Boot Admin 用于監(jiān)控基于 Spring Boot 的應(yīng)用。


核心實戰(zhàn)架構(gòu)

實戰(zhàn)架構(gòu)圖

架構(gòu)詳解

監(jiān)控

利用Spring Boot Admin 來監(jiān)控各個獨立Service的運行狀態(tài);利用Hystrix Dashboard來實時查看接口的運行狀態(tài)和調(diào)用頻率等。

負(fù)載均衡

將服務(wù)保留的rest進行代理和網(wǎng)關(guān)控制,除了平常經(jīng)常使用的node.js、nginx外,Spring Cloud系列的zuul和rebbion,可以幫我們進行正常的網(wǎng)關(guān)管控和負(fù)載均衡。

服務(wù)注冊與調(diào)用

基于Eureka來實現(xiàn)的服務(wù)注冊與調(diào)用,在Spring Cloud中使用Feign, 我們可以做到使用HTTP請求遠程服務(wù)時能與調(diào)用本地方法一樣的編碼體驗,開發(fā)者完全感知不到這是遠程方法,更感知不到這是個HTTP請求。

熔斷機智

因為采取了服務(wù)的分布,為了避免服務(wù)之間的調(diào)用“雪蹦”,我采用了Hystrix的作為熔斷器,避免了服務(wù)之間的“雪蹦”。

項目源碼

github:https://github.com/wxiaoqi/ace-security
gitchina:http://git.oschina.net/geek_qi/ace-security

參考文獻:

1、SpringCloud分布式開發(fā)五大神獸

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容