系統設計 中階

斷路器(Circuit Breaker)模式的工作原理與實作

AI 練習作答

斷路器模式

問題背景

微服務 A 呼叫服務 B,若 B 無回應或一直失敗,A 會累積大量等待執行緒,最終導致 A 也崩潰(級聯失敗/Cascading Failure)。

斷路器三種狀態

Closed(正常)→ 達到失敗閾值 → Open(斷路)
       ↑         ←等待重設時間→  ↓
 Half-Open(試探)← 試探成功 ←────
       ↓ 試探失敗
       → Open
狀態 行為
Closed 正常請求,記錄失敗率
Open 立即返回錯誤(不呼叫下游),給下游恢復時間
Half-Open 允許少量試探請求,決定是否恢復

實作工具

  • Java:Resilience4j、Netflix Hystrix(已停止維護)
  • Go:gobreaker
  • Service Mesh:Istio 可在 sidecar 層實作

降級(Fallback)策略

斷路器開啟時,可執行 fallback:

  • 返回快取的舊資料
  • 返回預設值
  • 返回「服務暫時不可用」友善訊息

面試加分:斷路器 + 重試(Retry)+ 超時(Timeout)+ 艙壁(Bulkhead)合稱「微服務韌性模式」,Resilience4j 提供全套實作。

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分