Circuit Breaking(斷路器模式)是一種分散式系統和微服務架構中常用的設計模式,目的在於提升系統韌性和容錯能力。它類似電路中的斷路器原理,當檢測到下游服務連續失敗或故障時,會「斷開」請求連接,防止系統持續發送請求給失效的服務,避免故障蔓延造成系統崩潰或資源耗盡。
Circuit Breaker模式的工作狀態
- Closed(閉合)狀態:正常狀態,所有請求正常傳送並監控錯誤率。
- Open(開啟)狀態:當錯誤率超過設定門檻時,斷路器打開,立即返回錯誤,阻斷對故障服務的請求。
- Half-Open(半開啟)狀態:經過一定冷卻時間後,允許少量請求通過測試服務是否恢復,若成功則恢復閉合狀態,失敗則繼續開啟。
主要作用與優點
- 防止故障擴散:避免大量失敗請求堵塞系統資源(如線程、連接池)。
- 加快故障響應:不必等待超時即可快速反饋失敗,提高用戶體驗。
- 促進自我恢復:自動檢測故障修復,恢復正常請求。
- 提升系統穩定性與可用性。
適用場景
- 微服務之間的HTTP/gRPC調用。
- 外部服務或第三方API請求。
- 資料庫或緩存服務的存取。
- 可能出現暫時性故障或性能波動的任何依賴。
簡言之,Circuit Breaking是一種智能的故障管理機制,透過實時監控和狀態切換,保護系統免於持續向故障組件發送請求,確保整體服務可用性和用戶體驗。