EC サイトで顧客からの注文を処理するシステムを Amazon SQS FIFO キューで実装しています。同じ顧客の注文は必ず送信した順序で処理される必要がありますが、異なる顧客の注文は並行して処理してスループットを向上させたいと考えています。この要件を満たすための正しいアプローチはどれですか?
SQS FIFO キューの MessageGroupId は、同じグループ内のメッセージが送信順に処理されることを保証します。顧客 ID を MessageGroupId に設定することで、同一顧客の注文は順序が保たれ、異なる MessageGroupId を持つメッセージは並行処理されます。 選択肢Aの MessageDeduplicationId は重複排除のためのものであり順序保証には使いません。 選択肢Cの VisibilityTimeout はメッセージ処理中に他のコンシューマーが同じメッセージを取得できないようにする設定であり、順序を保証するメカニズムではありません。 選択肢Dは、顧客ごとにキューを作成すると、顧客数の増加に伴いキュー管理コストが大幅に増加し現実的ではありません。