暫時性失敗該重試,但天真的重試會把小故障放大成雪崩。關鍵是退避、抖動、上限與冪等。
🧠 Core Ideas
TIP
重試前先問:這個錯誤可重試嗎(暫時性 vs 永久性)?操作冪等嗎?沒有這兩個前提,重試只會更糟。
⚖️ Tradeoffs
指數退避 + 抖動 (Jitter)
- 固定間隔重試 → 大家同時重試 = 驚群 (thundering herd)。
- 指數退避(1s, 2s, 4s…)拉開時間,但仍會同步。
- 加隨機抖動打散重試時刻,是避免同步重試的關鍵。
重試預算與熔斷
- 設重試上限與整體重試預算(如總請求的 10%),避免重試流量壓垮下游。
- 下游已經在燒 → 用熔斷器直接快速失敗,別再重試。
🔑 Takeaways
- 重試前提:錯誤可重試 + 操作冪等。
- 指數退避 + 抖動 + 上限三者缺一不可。
- 重試要有預算,並與熔斷搭配,否則會把故障放大成雪崩。
No notes yet — jot your takeaways or Q&A here.