FIFO トピックのメッセージのグループ化 - Amazon Simple Notification Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

FIFO トピックのメッセージのグループ化

同じグループに属するメッセージは、グループに対する厳密な順序で 1 つずつ処理されます。

メッセージを Amazon SNS FIFO トピックに発行する際、メッセージのグループ ID を設定します。グループ ID は、メッセージが特定のメッセージグループに属することを指定する必須トークンです。SNS FIFO トピックは、グループ ID をサブスクライブされた Amazon SQS FIFO キューに渡します。SNS FIFO トピックまたは SQS FIFO キュー内のグループ ID の数に制限はありません。メッセージグループ ID は Amazon SQS 標準キューには渡されません。

メッセージグループとサブスクリプションの間にアフィニティはありません。したがって、任意のメッセージグループに発行されたメッセージは、サブスクリプションに添付されたフィルターポリシーに従って、すべてのサブスクライブ済みキューに配信されます。詳細については、FIFO トピックのメッセージ配信 および FIFO トピックのメッセージフィルター処理 を参照してください。

自動車部品価格管理のユースケース例では、プラットフォームで販売されている製品ごとに専用のメッセージグループがあります。すべての価格更新の処理には、同じ Amazon SNS FIFO トピックが使用されます。価格更新の順序は、単一の自動車部品製品のコンテキスト内で保持されますが、ない複数の製品にまたがっていません。この 仕組み を以下に示します。メッセージグループ ID が product-214 の製品の場合、メッセージ m1 はメッセージ m4 の前に処理されていることに注意してください。この順序は、Amazon SNS FIFO と Amazon SQS FIFO を使用するワークフロー全体を通じて保持されます。同様に、メッセージグループ ID が product-799 の製品の場合、ワークフローが Amazon SNS FIFO と Amazon SQS FIFO を使用する限り、メッセージ m2 はメッセージ m3 の前に処理されます。ただし、Amazon SQS 標準キューを使用すると、メッセージの順序は保証されなくなり、メッセージグループは存在しません。product-214 および product-799 メッセージグループは互いに独立しているため、メッセージの順序付けには関係がありません。


      メッセージは、メッセージグループに関連する厳密な順序で処理されます。

メッセージグループ ID 別のデータ配布によりパフォーマンスを改善

配信スループットを最適化するために、Amazon SNS FIFO トピックは異なるメッセージグループからのメッセージを並列配信しますが、メッセージの順序は各メッセージグループ内で厳密に維持されます。個々のメッセージグループごとに、1 秒あたり最大 300 件のメッセージを配信できます。したがって、1 つのトピックで高いスループットを実現するには、多数の異なるメッセージグループ ID を使用してください。Amazon SNS FIFO トピックは、多様なメッセージグループのセットを利用することで、メッセージを多数の並列パーティションに自動的に配布します。

注記

Amazon SNS FIFO トピックは、グループの数に関係なく、メッセージグループ ID 全体にメッセージを均一に配布するように最適化されています。AWS では、パフォーマンスを最適化するために、個別のメッセージグループ ID を多数使用することをお勧めします。

スループットが高い Amazon SNS FIFO トピックに公開し、1 つ以上の Amazon SQS FIFO キューがサブスクライブされている場合は、キューで高スループットを有効にすることをお勧めします。詳細については、「Amazon Simple Queue Service デベロッパーガイド」の「FIFO キューの高スループット」を参照してください。