2019-08-20

?

2019 8-20


???????????? 熔斷器Hystrix


1.1 為什么要使用熔斷器

在微服務(wù)架構(gòu)中通常會(huì)有多個(gè)服務(wù)層調(diào)用,基礎(chǔ)服務(wù)的故障可能會(huì)導(dǎo)致級(jí)聯(lián)故障,進(jìn)而造成整個(gè)系統(tǒng)不可用的情況,這種現(xiàn)象被稱(chēng)為服務(wù)雪崩效應(yīng)。服務(wù)雪崩效應(yīng)是一種因“服務(wù)提供者”的不可用導(dǎo)致“服務(wù)消費(fèi)者”的不可用,并將不可用逐漸放大的過(guò)程。


如果下圖所示:A作為服務(wù)提供者,B為A的服務(wù)消費(fèi)者,C和D是B的服務(wù)消費(fèi)者。A不可用引起了B的不可用,并將不可用像滾雪球一樣放大到C和D時(shí),雪崩效應(yīng)就形成了。


2 什么是Hystrix

Hystrix [h?st'r?ks]的中文含義是豪豬, 因其背上長(zhǎng)滿(mǎn)了刺,而擁有自我保護(hù)能力

Hystrix 能使你的系統(tǒng)在出現(xiàn)依賴(lài)服務(wù)失效的時(shí)候,通過(guò)隔離系統(tǒng)所依賴(lài)的服務(wù),防止服務(wù)級(jí)聯(lián)失敗,同時(shí)提供失敗回退機(jī)制,更優(yōu)雅地應(yīng)對(duì)失效,并使你的系統(tǒng)能更快地從異常中恢復(fù)。

了解熔斷器模式請(qǐng)看下圖:


?為什么需要微服務(wù)網(wǎng)關(guān)

不同的微服務(wù)一般有不同的網(wǎng)絡(luò)地址,而外部的客戶(hù)端可能需要調(diào)用多個(gè)服務(wù)的接口才能完成一個(gè)業(yè)務(wù)需求。比如一個(gè)電影購(gòu)票的收集APP,可能回調(diào)用電影分類(lèi)微服務(wù),用戶(hù)微服務(wù),支付微服務(wù)等。如果客戶(hù)端直接和微服務(wù)進(jìn)行通信,會(huì)存在一下問(wèn)題:

客戶(hù)端會(huì)多次請(qǐng)求不同微服務(wù),增加客戶(hù)端的復(fù)雜性

存在跨域請(qǐng)求,在一定場(chǎng)景下處理相對(duì)復(fù)雜

認(rèn)證復(fù)雜,每一個(gè)服務(wù)都需要獨(dú)立認(rèn)證

難以重構(gòu),隨著項(xiàng)目的迭代,可能需要重新劃分微服務(wù),如果客戶(hù)端直接和微服務(wù)通信,那么重構(gòu)會(huì)難以實(shí)施

某些微服務(wù)可能使用了其他協(xié)議,直接訪(fǎng)問(wèn)有一定困難

上述問(wèn)題,都可以借助微服務(wù)網(wǎng)關(guān)解決。微服務(wù)網(wǎng)關(guān)是介于客戶(hù)端和服務(wù)器端之間的中間層,所有的外部請(qǐng)求都會(huì)先經(jīng)過(guò)微服務(wù)網(wǎng)關(guān)。


2.2 什么是Zuul

Zuul是Netflix開(kāi)源的微服務(wù)網(wǎng)關(guān),他可以和Eureka,Ribbon,Hystrix等組件配合使用。Zuul組件的核心是一系列的過(guò)濾器,這些過(guò)濾器可以完成以下功能:

身份認(rèn)證和安全: 識(shí)別每一個(gè)資源的驗(yàn)證要求,并拒絕那些不符的請(qǐng)求

#審查與監(jiān)控:

動(dòng)態(tài)路由:動(dòng)態(tài)將請(qǐng)求路由到不同后端集群

壓力測(cè)試:逐漸增加指向集群的流量,以了解性能

負(fù)載分配:為每一種負(fù)載類(lèi)型分配對(duì)應(yīng)容量,并棄用超出限定值的請(qǐng)求

靜態(tài)響應(yīng)處理:邊緣位置進(jìn)行響應(yīng),避免轉(zhuǎn)發(fā)到內(nèi)部集群

多區(qū)域彈性:跨域AWS Region進(jìn)行請(qǐng)求路由,旨在實(shí)現(xiàn)ELB(ElasticLoad Balancing)使

用多樣化

Spring Cloud對(duì)Zuul進(jìn)行了整合和增強(qiáng)。

使用Zuul后,架構(gòu)圖演變?yōu)橐韵滦问?/p>

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

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

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