RabbitMQのワークキュー(ワークモード)は1つのプロデューサーと複数のコンシューマーを含みます。各メッセージは1つのコンシューマーのみが消費でき、並行してメッセージを消費することが可能です。
アーキテクチャ図
説明:Pはプロデューサーを、C1とC2はコンシューマーをそれぞれ表し、赤色はキューを示します。
ユースケース
このモードは個々のビジネスと一対一の並列処理が必要なシナリオに適しています。たとえば、1000通のメールを送信する場合、100人のコンシューマーを利用して一度に100通のメールを並行して送信することができます。
注意:複数のコンシューマーが同じキューからメッセージを同時に消費する場合、厳密なメッセージの順序を保証することはできません。たとえば、キューに10個のメッセージがあり、10人のコンシューマーでそれらを同時に処理する場合、一部のコンシューマーは他のコンシューマーよりも速く実行されるかもしれません。その結果、メッセージの処理順序がキュー内のメッセージの順序と一致しないことがあります。メッセージの順序に厳格な要件がある場合は、各キューを1つのコンシューマーしか持たないように制御することで、並列処理を制限して厳密なメッセージ処理順序を確保することができます。