過去問ドリル

LinuCレベル4 システムアーキテクト 可用性の設計 問27

可用性の設計/負荷分散と障害の局所化

メッセージキューを使った非同期処理で、コンシューマが処理に失敗した場合のリトライ設計について、適切でないものはどれか。

当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「可用性の設計」に対応。実際の試験問題ではありません)

正解:D

解説

ジッターの目的は複数のコンシューマのリトライが同時に集中する「リトライストーム」を防ぐことです。乱数で再試行タイミングをばらつかせることで、同時期にリトライが集中してバックエンドへの負荷が急増する状況を避けます。「一斉に集中的に処理できる」という記述はジッターの目的と正反対であり、誤りです。デッドレターキューへの転送やバックオフの上限設定はいずれも適切な設計です。

選択肢ごとの解説

  • A誤り(正しい記述)。デッドレターキューへの転送は問題のあるメッセージを分離して運用上の視認性を確保する有効な手法です。
  • B誤り(正しい記述)。指数バックオフで再試行間隔を延ばすことで、障害中のバックエンドへの再試行頻度を下げ、回復の余裕を与えられます。
  • C誤り(正しい記述)。バックオフに上限を設けることで再試行が無期限に延期されることを防ぎ、適切な頻度での処理継続を維持できます。
  • D正しい(誤っている記述)。ジッターの目的は複数コンシューマのリトライが同時に集中することを防ぐことであり、「一斉に集中的に処理できる」は正反対の説明です。
LinuCレベル4 システムアーキテクトの問題を演習モードで解く