問題文
API のバックエンドが下流のサービスに依存しており、下流が遅延すると API 全体が応答しなくなります。障害の連鎖を防ぎたいと考えています。適切な設計を 2 つ選択してください。
選択肢
- タイムアウトを設定せず、下流の応答を待ち続ける
- 再試行の回数を無制限にして、成功するまで呼び出し続ける
- 連続した失敗を検知したら一定期間呼び出しを止めるサーキットブレーカーを実装し、機能を縮退させた応答を返す
- 下流の呼び出しにタイムアウトを設定し、上限回数を決めた指数バックオフとジッターによる再試行を行う
- 下流が遅い間はインスタンス数を最大まで増やして待機させる