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 つのコンシューマーはそれをすべて処理します。詳細は、メッセージのグループ化 に関する章を参照してください。