spring cloud 斷路器恢復后如何通知前端
spring cloud 斷路器恢復后如何通知前端
慕少森
2018-11-12 08:04:50
TA貢獻1858條經驗 獲得超8個贊
在分布式環境下,特別是微服務結構的分布式系統中,
一個軟件系統調用另外一個遠程系統是非常普遍的。這種遠程調用的被調用方可能是另外一個進程,或者是跨網路的另外一臺主機,
這種遠程的調用和進程的內部調用最大的區別是,遠程調用可能會失敗,或者掛起而沒有任何回應,直到超時。更壞的情況是,
如果有多個調用者對同一個掛起的服務進行調用,那么就很有可能的是一個服務的超時等待迅速蔓延到整個分布式系統,引起連鎖反應,
從而消耗掉整個分布式系統大量資源。最終可能導致系統癱瘓。
斷路器(Circuit Breaker)模式就是為了防止在分布式系統中出現這種瀑布似的連鎖反應導致的災難。
一旦某個電器出問題,為了防止災難,電路的保險絲就會熔斷。斷路器類似于電路的保險絲,
實現思路非常簡單,可以將需要保護的遠程服務嗲用封裝起來,在內部監聽失敗次數,
一旦失敗次數達到某閥值后,所有后續對該服務的調用,斷路器截獲后都直接返回錯誤到調用方,而不會繼續調用已經出問題的服務,
從而達到保護調用方的目的, 整個系統也就不會出現因為超時而產生的瀑布式連鎖反應。
舉報