リトライストーム(りとらいすとーむ)
最終更新:2026/4/28
リトライストームは、マイクロサービスアーキテクチャにおいて、一時的な障害によりサービスAがサービスBを呼び出し、その呼び出しが失敗した場合に、サービスAが短時間に大量のリクエストを再試行することで、サービスBに過負荷をかける現象。
別名・同義語 再試行嵐
ポイント
リトライストームは、分散システムにおけるカスケード障害の一種であり、サーキットブレーカーパターンなどの対策が有効である。再試行間隔の調整や、指数バックオフなどの戦略も重要。
リトライストームの概要
リトライストームは、マイクロサービスアーキテクチャにおいて、あるサービスが別のサービスを呼び出す際に発生する可能性のある問題です。一時的なネットワーク障害や、サービス側の過負荷などにより、最初の呼び出しが失敗することがあります。この際、呼び出し元のサービスが単純にリクエストを再試行すると、短時間に大量のリクエストが宛先サービスに集中し、宛先サービスに過負荷をかける可能性があります。これがリトライストームです。
リトライストームが発生するメカニズム
リトライストームは、以下のようなメカニズムで発生します。
- 初期障害: サービスAがサービスBを呼び出す際、一時的な障害が発生し、呼び出しが失敗します。
- リトライ: サービスAは、設定されたリトライポリシーに従い、短時間間隔でリクエストを再試行します。
- リクエスト集中: 複数のサービスAが同時にサービスBを呼び出し、同様にリトライを繰り返すと、サービスBに大量のリクエストが集中します。
- 過負荷: サービスBは、大量のリクエストに対応できず、過負荷状態に陥ります。
- カスケード障害: サービスBの応答遅延やエラーが、さらに他のサービスに影響を与え、カスケード障害を引き起こす可能性があります。
リトライストームへの対策
リトライストームを防ぐためには、以下のような対策が有効です。
- サーキットブレーカーパターン: 宛先サービスが過負荷状態にある場合、呼び出しを一時的に停止し、宛先サービスの回復を待ちます。
- 指数バックオフ: リトライ間隔を徐々に長くすることで、宛先サービスへの負荷を軽減します。
- ジッター: リトライ間隔にランダムな変動を加えることで、リクエストの集中を避けます。
- レートリミット: 呼び出し元のサービスからのリクエスト数を制限することで、宛先サービスへの過負荷を防ぎます。
- 監視とアラート: 宛先サービスの負荷状況を監視し、異常な負荷が発生した場合にアラートを発行します。