1 回答

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
在分布式環(huán)境下,特別是微服務(wù)結(jié)構(gòu)的分布式系統(tǒng)中,
一個(gè)軟件系統(tǒng)調(diào)用另外一個(gè)遠(yuǎn)程系統(tǒng)是非常普遍的。這種遠(yuǎn)程調(diào)用的被調(diào)用方可能是另外一個(gè)進(jìn)程,或者是跨網(wǎng)路的另外一臺主機(jī),
這種遠(yuǎn)程的調(diào)用和進(jìn)程的內(nèi)部調(diào)用最大的區(qū)別是,遠(yuǎn)程調(diào)用可能會失敗,或者掛起而沒有任何回應(yīng),直到超時(shí)。更壞的情況是,
如果有多個(gè)調(diào)用者對同一個(gè)掛起的服務(wù)進(jìn)行調(diào)用,那么就很有可能的是一個(gè)服務(wù)的超時(shí)等待迅速蔓延到整個(gè)分布式系統(tǒng),引起連鎖反應(yīng),
從而消耗掉整個(gè)分布式系統(tǒng)大量資源。最終可能導(dǎo)致系統(tǒng)癱瘓。
斷路器(Circuit Breaker)模式就是為了防止在分布式系統(tǒng)中出現(xiàn)這種瀑布似的連鎖反應(yīng)導(dǎo)致的災(zāi)難。
一旦某個(gè)電器出問題,為了防止災(zāi)難,電路的保險(xiǎn)絲就會熔斷。斷路器類似于電路的保險(xiǎn)絲,
實(shí)現(xiàn)思路非常簡單,可以將需要保護(hù)的遠(yuǎn)程服務(wù)嗲用封裝起來,在內(nèi)部監(jiān)聽失敗次數(shù),
一旦失敗次數(shù)達(dá)到某閥值后,所有后續(xù)對該服務(wù)的調(diào)用,斷路器截獲后都直接返回錯(cuò)誤到調(diào)用方,而不會繼續(xù)調(diào)用已經(jīng)出問題的服務(wù),
從而達(dá)到保護(hù)調(diào)用方的目的, 整個(gè)系統(tǒng)也就不會出現(xiàn)因?yàn)槌瑫r(shí)而產(chǎn)生的瀑布式連鎖反應(yīng)。
- 1 回答
- 0 關(guān)注
- 895 瀏覽
添加回答
舉報(bào)