🎯 什麼情境該想到我
當一個下游服務變慢/掛掉,就把整條鏈路甚至整個系統拖垮(雪崩)時。
⚙️ 怎麼用(組合使用)
- 熔斷(Circuit Breaker):偵測到下游持續失敗就「跳閘」,快速失敗、暫停呼叫,給它時間恢復,避免堆積。
- 艙壁隔離(Bulkhead):把資源(執行緒池/連線)按依賴分艙,一個依賴爆掉不會吃光全部資源。
- 重試 + 退避:對暫時性失敗重試,但要指數退避 + 上限 + 冪等,避免重試風暴(見 工具-MQ消費端防禦三原則)。
- 降級(Fallback):失敗時回傳合理的預設/快取結果,保住核心體驗。
- 流量控制(限流):超過容量就擋,保護系統不被打垮。
🧪 我實際套用的紀錄
- 2026-07-15:(待填)
⚠️ 注意
- 無腦重試是雪崩幫兇;重試前先確認「冪等 + 退避 + 熔斷」都到位。
🔗 相關工具
- 工具-MQ消費端防禦三原則 —— 非同步那一側的容錯,這張顧同步呼叫鏈,它顧訊息消費端
- 工具-防禦式編程 —— 更小顆粒的同一心態,容錯在服務層設界線,防禦式在函式層設界線
- 工具-透明多級分流 —— 上游配套,健康檢查與流量調度是熔斷之前就該擋掉問題的那一層