翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
FIFO Amazon でのキュー配信ロジック SQS
以下の概念は、 とのメッセージの送受信をよりよく理解するのに役立ちますFIFO。
- メッセージの送信
-
複数のメッセージがFIFOキューに連続して送信される場合、それぞれに個別のメッセージ重複排除 ID が付与されます。Amazon はメッセージSQSを保存し、送信を確認します。その後、各メッセージを、送信された正確な順序で受信し処理できます。
FIFO キューでは、メッセージはメッセージグループ ID に基づいて順序付けられます。複数のホスト (または同じホスト上の異なるスレッド) が、同じメッセージグループ ID のメッセージをFIFOキューに送信する場合、Amazon は処理のために到着した順序でメッセージSQSを保存します。Amazon がメッセージの送受信順序SQSを保持するようにするには、各プロデューサーは一意のメッセージグループ ID を使用してすべてのメッセージを送信する必要があります。
FIFO キューロジックは、メッセージグループ ID ごとにのみ適用されます。各メッセージグループ ID は、Amazon SQSキュー内の個別の順序付きメッセージグループを表します。メッセージグループIDごとに、すべてのメッセージが厳密な順序で送受信されます。ただし、異なるメッセージグループ ID値のメッセージは、送信および受信の順序が入れ替わる場合があります。メッセージグループIDをメッセージに関連付ける必要があります。メッセージグループIDを指定しない場合、アクションは失敗します。順序付けられたメッセージの 1 つのグループが必要な場合は、FIFOキューに送信されたメッセージに同じメッセージグループ ID を指定します。
- メッセージの受信
-
特定のメッセージグループIDのメッセージを受信するようにリクエストすることはできません。
複数のメッセージグループ を持つFIFOキューからメッセージを受信するとIDs、Amazon はSQSまず同じメッセージグループ ID を持つメッセージをできるだけ多く返そうとします。こうすることで、他のコンシューマーが別のメッセージグループ IDを持つメッセージを処理できます。メッセージグループ ID があるメッセージを受信した場合、そのメッセージを削除しない、または表示されない限り、同じメッセージグループ ID のメッセージはそれ以上返されません。
注記
MaxNumberOfMessages
アクションのReceiveMessage
リクエストパラメータを使用した1回の呼び出しで最大10件のメッセージを受信できます。これらのメッセージはFIFO順序を保持し、同じメッセージグループ ID を持つことができます。したがって、同じメッセージグループ ID で使用可能なメッセージが 10 件未満の場合、10 件のメッセージの同じバッチで、別のメッセージグループ ID からメッセージを受信する可能性がありますが、順序はFIFO変わりません。 - 複数回の再試行
FIFO キューを使用すると、プロデューサーまたはコンシューマーは複数の再試行を試行できます。
-
プロデューサが障害を検出した
SendMessage
アクションがある場合、同じメッセージ重複除外 IDを使用して、必要な回数だけ送信を再試行できます。重複除外間隔の期限が切れる前にプロデューサが少なくとも1つの確認応答を受信すると仮定すると、複数回の再試行はメッセージの順序に影響せず、重複も発生しません。 -
コンシューマが障害を検出した場合
ReceiveMessage
アクションの場合、同じ受信リクエスト試行 IDを使用して、必要な回数だけ再試行できます。可視性タイムアウトの期限が切れる前にコンシューマが少なくとも1つの確認応答を受信すると仮定すると、複数回の再試行はメッセージの順序に影響しません。 -
メッセージグループ IDがあるメッセージを受信した場合、メッセージを削除するか、表示されない限り、同じメッセージグループ IDのメッセージはそれ以上返信されません。
-