第5章 メッセージアドレスとキュー

AMQ 7 では、任意のメッセージングプロトコルで機能する標準メッセージングパターンを定義できる、新しい柔軟なアドレス指定モデルが導入されました。そのため、キューやトピックのような動作を設定するプロセスが大幅に変更されました。

5.1. アドレス指定の変更

AMQ 6 は、直接設定可能な宛先としてキュー、トピック、永続サブスクリプションなどの JMS の概念を実装しました。

例: AMQ 6 のデフォルトのキューおよびトピック設定

<destinations>
     <queue physicalName="my-queue" />
     <topic physicalName="my-topic" />
</destinations>

AMQ Broker 7 はアドレス、ルーティングタイプ、およびキューを使用して、キューとトピックのような動作を実現します。アドレス はメッセージングエンドポイントを表します。キュー はアドレスに関連付けられます。ルーティングタイプ は、アドレスに関連付けられたキューにメッセージが配信される方法を定義します。ルーティングタイプには 2 種類あります。エニーキャスト の場合、マッチするアドレス内の単一のキューにメッセージを配信し、マルチキャスト の場合、アドレスに関連付けられたすべてのキューにメッセージを配信します。

キューをアドレスおよびルーティングタイプに関連付けることで、ポイントツーポイント (キュー) やパブリッシュ-サブスクライブ (トピック的) などのさまざまなメッセージングパターンを実装できます。

例: AMQ Broker 7 のポイントツーポイントアドレス設定

この例では、ブローカーが address.foo でメッセージを受信すると、メッセージは my-queue にルーティングされます。複数のエニーキャストキューがアドレスに関連付けられている場合は、メッセージはキュー全体に均等に分散されます。

<address name="address.foo">
  <anycast>
    <queue name="my-queue"/>
  </anycast>
</address>

例: AMQ Broker 7 のパブリッシュ-サブスクライブアドレス設定

この例では、ブローカーが topic.foo でメッセージを受信すると、メッセージのコピーが my-topic-1my-topic-2 の両方にルーティングされます。

<address name="topic.foo">
  <multicast>
    <queue name="my-topic-1"/>
    <queue name="my-topic-2"/>
  </multicast>
</address>

関連情報