LinuCレベル2 システムアーキテクチャの設計 問21
システムアーキテクチャの設計/典型的なシステムアーキテクチャWebアプリケーションで、利用者がアップロードした動画の変換のように時間がかかる処理を、メッセージキューとワーカーによる非同期処理で実装する。利用者への応答の設計として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムアーキテクチャの設計」に対応。実際の試験問題ではありません)
- AWebサーバーが変換処理の完了まで接続を保持し、完了してから結果をまとめて返す
- B受付をキューに登録した時点で応答を返し、処理結果は後から状態確認や通知で伝える
- Cキューに登録した処理は必ず即座に完了するため、登録と同時に完了した結果を返す
- D変換処理をWebサーバー自身で並列に実行し、キューは処理の記録用としてだけ使う
正解:B
解説
非同期処理の構成では、Web層は要求を受け付けてメッセージキューへ登録した時点で「受け付けた」という応答を返し、実際の処理は別のワーカーがキューから取り出して行います。利用者は処理の完了を、状態確認用の画面やAPI、メール等の通知によって後から知る形になります。これにより、時間のかかる処理でWebサーバーの接続や処理能力が占有されず、応答時間を短く保てます。処理量が増えた場合も、ワーカーの台数を増やすことで対応できます。
選択肢ごとの解説
- A誤り。完了まで接続を保持するのは同期処理の設計で、時間のかかる処理ではタイムアウトやWebサーバーの資源の占有を招きます。
- B正しい。受付時点で応答を返し、処理結果は状態確認や通知で後から伝えるのが非同期処理の典型的な設計です。
- C誤り。キューに登録しても処理が即座に終わるわけではなく、ワーカーが順に取り出して処理するため完了は後になります。
- D誤り。Webサーバー自身で重い処理を実行するとキューを挟む意味がなく、処理の切り離しや負荷の分散という利点が得られません。