4.8. シャード化されたキューの設定
部分的な順序付けのみが必要とされるキュー全体のメッセージの処理には、queue sharding を使用するのが一般的なパターンです。AMQ Broker では、単一の論理キューとして機能する anycast アドレスを作成してこれを実現できますが、多くの基礎となる物理キューでサポートされます。
手順
BROKER_INSTANCE_DIR/etc/broker.xmlを開き、目的の名前のアドレスを追加します。以下の例では、shardedという名前のアドレスが設定に追加されます。<configuration ...> <core ...> ... <addresses> <address name="sharded"></address> </addresses> </core> </configuration>anycastルーティングタイプを追加し、希望するシャードキューの数を入力します。以下の例では、キューq1、q2、q3がエニーキャストの宛先として追加されています。<configuration ...> <core ...> ... <addresses> <address name="sharded"> <anycast> <queue name="q1" /> <queue name="q2" /> <queue name="q3" /> </anycast> </address> </addresses> </core> </configuration>
上記の設定を使用すると、sharded に送信されるメッセージは q1、q2、および q3 に均等に分散されます。クライアントは、完全修飾キュー名の使用 時に、特定の物理キューに直接接続して、その特定のキューにのみ送信されたメッセージを受け取ることができます。
特定のメッセージを特定のキューに結びつけるために、クライアントはメッセージごとにメッセージグループを指定できます。ブローカーは、グループ化されたメッセージを同じキューにルーティングし、1 つのコンシューマーはそれをすべて処理します。詳細は、メッセージのグループ化 に関する章を参照してください。