Retry with Backoffとは?
retry with backoffは、失敗した操作を試行間の増加する遅延の後で再試行するレジリエンス戦略で、一般に毎回遅延を2倍にし(指数バックオフ)、ランダム性(jitter)を加えます。増加する遅延は苦しんでいる依存先を叩き続けるのを避け、jitterは多数のクライアントが足並みをそろえて再試行するのを防ぎます。これは一時的な障害を乗り切る標準的な方法です。
なぜ重要か
一時的なエラー、短いネットワークの途切れ、rate limit、一時的な利用不可はよくあることで、通常は自然に解消します。何も考えない即時リトライは過負荷のシステムを悪化させることがありますが、jitter付きのbackoffは優雅に回復します。リトライは操作が冪等である場合にのみ安全です。マネージドrunnerは、一時的なインフラ障害に見舞われたjobを自動リトライするためにこれを適用します。
関連する概念
- 指数バックオフは試行ごとに遅延を2倍にする
- jitterはリトライを分散させてthundering herdを避ける
- 安全であるには冪等な操作が必要
関連ガイド
What Is Idempotency?An idempotent operation produces the same result whether it runs once or many times, making retries and re-ru…
What Is a Circuit Breaker?A circuit breaker stops calling a failing dependency for a cooldown period to prevent cascading failures and…
What Is a Rate Limit?A rate limit caps how many requests a client may make in a time window, protecting a service from overload an…