第5章 メッセージアドレスとキュー
AMQ 7 では、新しい柔軟なアドレッシングモデルが導入され、あらゆるメッセージングプロトコルで機能する標準のメッセージングパターンを定義できます。そのため、キューとトピックのような動作を設定するプロセスが大幅に変更されました。
5.1. 変更への対応
AMQ 6 では、直接設定可能な宛先として、キュー、トピック、永続サブスクリプションなどの JMS の概念が実装されました。
例: AMQ 6 のデフォルトのキューとトピックの設定
<destinations> <queue physicalName="my-queue" /> <topic physicalName="my-topic" /> </destinations>
<destinations>
<queue physicalName="my-queue" />
<topic physicalName="my-topic" />
</destinations>
AMQ Broker 7 は、アドレス、ルーティングタイプ、およびキューを使用して、キューおよびトピックのような動作を実現します。address はメッセージングエンドポイントを表します。キュー はアドレスに関連付けられています。ルーティングタイプ は、アドレスに関連付けられたキューにメッセージを配信する方法を定義します。2 つのルーティングタイプがあります。エニーキャスト は一致するアドレス内の単一のキューにメッセージを配信し、マルチキャスト はアドレスに関連付けられたすべてのキューにメッセージを配信します。
キューをアドレスとルーティングタイプに関連付けることで、ポイントツーポイント (キュー) やパブリッシュ/サブスクライブ (トピックのような) など、さまざまなメッセージングパターンを実装できます。
例: AMQ Broker 7 でのポイントツーポイントアドレスの設定
この例では、ブローカーが address.foo
でメッセージを受信すると、メッセージは my-queue
にルーティングされます。複数のエニーキャストキューがアドレスに関連付けられている場合、メッセージはキュー全体に均等に分散されます。
<address name="address.foo"> <anycast> <queue name="my-queue"/> </anycast> </address>
<address name="address.foo">
<anycast>
<queue name="my-queue"/>
</anycast>
</address>
例: AMQ Broker 7 でのパブリッシュ/サブスクライブアドレスの設定
この例では、ブローカーが topic.foo
でメッセージを受信すると、メッセージのコピーが my-topic-1
と my-topic-2
の両方にルーティングされます。
<address name="topic.foo"> <multicast> <queue name="my-topic-1"/> <queue name="my-topic-2"/> </multicast> </address>
<address name="topic.foo">
<multicast>
<queue name="my-topic-1"/>
<queue name="my-topic-2"/>
</multicast>
</address>
関連情報
- AMQ Broker 7 のアドレス指定モデルの詳細については、AMQ Broker の設定 の アドレス、キュー、およびトピック を参照してください。