可靠性與 SRE 中階
分散式系統中常見的可靠性設計模式有哪些?
為什麼需要可靠性模式
在分散式系統中,任何服務依賴都可能失敗。沒有防護措施的依賴失敗會導致連鎖故障(Cascading Failure),整個系統雪崩。
核心可靠性模式
熔斷器 (Circuit Breaker) 監控服務調用的失敗率,超過閾值後自動「斷路」,不再向下游發送請求,直到服務恢復。
三種狀態:
- Closed(正常):請求正常通過
- Open(斷路):直接返回錯誤,不調用下游
- Half-Open(試探):允許少量請求通過以測試恢復
工具:Resilience4j(Java)、polly(.NET)、opossum(Node.js)
超時 (Timeout) 為所有外部調用設置超時,防止慢速依賴耗盡連接池。
重試 (Retry) 失敗後自動重試,但必須配合:
- 指數退避(Exponential Backoff):避免同時重試造成雪崩
- 最大重試次數:防止無限重試
- 冪等性:確保重試不會造成重複操作
艙壁 (Bulkhead) 將資源(執行緒池、連接池)按服務隔離,一個下游服務的問題不會耗盡所有資源。
降級 (Fallback) 依賴失敗時提供備用響應:
- 返回快取的舊資料
- 返回預設值
- 降級功能(如:推薦系統掛掉時,返回熱門商品列表)
模式組合使用
最佳實踐是組合使用:Timeout + Retry + Circuit Breaker + Bulkhead + Fallback,形成完整的彈性防護層。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
