依存先の障害が全体へ広がる

正解は ア です。 依存先の遅延が広がるのを防ぐには、 短いタイムアウト と、再試行の集中を避ける 指数バックオフ+ジッター 、 回数の上限 を組み合わせます。 対策 効果 短いタイムアウト スレッドを長く占有しない バックオフ+ジッター+上限 再試行で依存先をさらに圧迫しない 即時・無制限の再試行 依存先の障害を悪化させる 待ち時間を限り、再試行も分散させるので、障害が全体へ広がりにくい。 待ちが続く限り同じように埋まり、根本の解決にならない。 再試行が集中し、依存先の障害を悪化させる。 待ち時間が長くなり、スレッドの枯渇が悪化する。

マイクロサービスAは、外部の在庫APIを同期で呼び出している。在庫APIが遅くなると、Aのスレッドが待ち続けて埋まり、在庫と無関係な機能まで応答しなくなった。

最も適切なものを1つ選択してください。

出典AWS非公式・オリジナル問題
ア
呼び出しのタイムアウトを短くし、再試行は指数バックオフとジッターで回数の上限を設ける
イ
サービスAのインスタンスを2倍に増やし、待ちのスレッドが埋まっても処理できるようにしておく
ウ
在庫APIへの呼び出しを、失敗するたびにすぐ無制限に再試行するようにして成功率を上げる
エ
在庫APIの呼び出しのタイムアウトを延ばし、すべての要求が完了するまで待つようにする