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/b
、a/bar/b
、およびa/foo/bar/b
がマッチします。 -
a/+/b
は、a/foo/b
とa/bar/b
がマッチしますが、a/foo/bar
はマッチしません。
2.3.1.2.2. 階層トピックでサブスクライバーを作成する際の既知の問題
AMQ Online で階層トピックにサブスクライバーを作成すると、ブローカーが代わりに競合するコンシューマーとしてサブスクライバーを作成するという既知の問題が存在します (トピックではなくキューのようにアドレスを処理します)。クライアントの特定の回避策の詳細は、アプリケーションの AMQ Online への接続 の該当するクライアントの例のセクションを参照してください。