2.3. ブローカーアドレス空間

ブローカーのアドレス空間は、ブローカー固有の機能をサポートするように設計されていますが、接続数とアドレス数の点でサイズの制限があります。このアドレス空間は、JMS トランザクション、メッセージグループ、およびキューとトピックのセレクターをサポートします。

クライアントは、次のプロトコルを使用して、このアドレス空間でメッセージを送受信するだけでなく、接続することもできます。

  • AMQP
  • CORE
  • OpenWire
  • MQTT
  • STOMP

2.3.1. ブローカーアドレスの種類

ブローカーアドレス空間は、次の 2 つのアドレスタイプをサポートします。

  • queue
  • topic

2.3.1.1. Queue

キューアドレスタイプは、ストアアンドフォワードキューです。このアドレスタイプは、分散ワークキューの実装、トラフィックバーストの処理、およびプロデューサーとコンシューマーを切り離す場合などのユースケースに適しています。ブローカーアドレス空間のキューは、セレクター、メッセージグループ、トランザクション、およびその他の JMS 機能をサポートします。メッセージの順序は、メッセージが解放されると失われる可能性があります。

2.3.1.2. トピック

トピックアドレスタイプは、1..N のプロデューサーと 1..M のコンシューマーが存在するパブリッシュ/サブスクライブメッセージングパターンをサポートします。トピックアドレス対して発行された各メッセージは、そのアドレスの全サブスクライバーに転送されます。サブスクライバーは永続性がある場合があり、そのような場合には、メッセージはサブスクライバーが確認応答するまで保持されます。

2.3.1.2.1. 階層トピックとワイルドカード

トピックアドレスから受信するクライアントは、トピックアドレスをルートとしてワイルドカードアドレスを指定できます。ワイルドカードの動作は MQTT 構文に従います。

  • / はセパレーターです。
  • + はレベル 1 つと照合します。
  • # 1 つ以上のレベルで照合します。

たとえば、次のようになります。

  • a/#/b では a/foo/ba/bar/b、および a/foo/bar/b がマッチします。
  • a/+/b は、a/foo/ba/bar/b がマッチしますが、a/foo/bar はマッチしません。
2.3.1.2.2. 階層トピックでサブスクライバーを作成する際の既知の問題

AMQ Online で階層トピックにサブスクライバーを作成すると、ブローカーが代わりに競合するコンシューマーとしてサブスクライバーを作成するという既知の問題が存在します (トピックではなくキューのようにアドレスを処理します)。クライアントの特定の回避策の詳細は、アプリケーションの AMQ Online への接続 の該当するクライアントの例のセクションを参照してください。