Question#31(AZ-204)
Azure Event Grid からのすべてのメッセージが確実に処理されるようにする必要があります。 何を使用すべきですか?
正解:C
この設問が VanArsdel, Ltd. などのケーススタディの一部である場合、要件に以下の決定的な一文が含まれています。
(Azure Event Grid は、キューベースの負荷平準化のために Azure Service Bus を使用しなければならない。)
1. 負荷平準化(Load Leveling)の要件
課題: イベントが発生した際、受信側(この場合は Logic App など)の処理能力を超える大量のイベントが一度に押し寄せると、メッセージが失われる(処理しきれない)リスクがあります。
解決策: Event Grid と受信側の間に「バッファ」としてキューを挟みます。これを Queue-based Load Leveling パターンと呼びます。
Service Bus の選択: Azure Service Bus は、高いメッセージング機能(デッドレター、セッション、トランザクション、重複検出)を備えており、エンタープライズレベルでの「確実な処理」を実現するための標準的なバッファとして指定されます。
2. 「確実に処理する」ための機能
Service Bus Queue は以下の機能を持ち、メッセージの消失を防ぎます。
Peek-Lock モード: メッセージを取得してもすぐには削除せず、処理が完了して「完了(Complete)」が通知されるまでロックします。処理が失敗した場合はロックが解除され、再試行されます。
Dead-letter queue (DLQ): 何度試しても処理できないメッセージを自動的に「配信不能キュー」に隔離し、後で分析・再処理できるようにします。

コメント