第17章 ブローカーのブリッジ
ブリッジは、2 つのブローカーを接続する方法を提供し、メッセージを 1 つから別のブローカーに転送します。
以下のブリッジが利用可能です。
- コア
-
1 つのブローカーにデプロイされたコアブリッジを示す例が提供されます。これは、ローカルキューからメッセージを消費し、2 番目のブローカーのアドレスに転送します。ブローカーインストールの
<install_dir> /examples/features/standard/
ディレクトリーにあるcore-bridge
の例を参照してください。 - ミラーリング
- 16章ブローカー接続を使用したマルチサイトのフォールトトレランスメッセージングシステムの設定 を参照してください。
- 送信側および受信側
- 「ブローカー接続の送信者およびレシーバー設定」 を参照してください。
- ピア
- 「ブローカー接続のピア設定」 を参照してください。
コアブリッジの broker.xml
要素は ブリッジ
です。他のブリッジ技術は <broker-connection>
要素を使用します。
17.1. ブローカー接続の送信者およびレシーバー設定
broker.xml
の <broker-connections>
セクションに送信側または受信側ブローカーの接続要素を作成して、ブローカーを別のブローカーに接続できます。
送信側
の場合、ブローカーは別のブローカーにメッセージを送信するキューにメッセージコンシューマーを作成します。
受信側
の場合、ブローカーは別のブローカーからメッセージを受信するアドレスにメッセージプロデューサーを作成します。
どちらの要素もメッセージブリッジとして機能します。ただし、メッセージを処理するために必要な追加のオーバーヘッドはありません。送信側および受信側は、ブローカーの他のコンシューマーまたはプロデューサーと同様に動作します。
特定のキューは、送信側または受信側で設定できます。ワイルドカード式は、送信側および受信側を特定のアドレスまたはアドレス セット に一致させるために使用できます。送信側またはレシーバーを設定する場合は、以下のプロパティーを設定できます。
-
address-match
: ワイルドカード式を使用して、送信側または受信側を特定のアドレスまたはアドレス セット に一致させます。 -
queue-name
: 特定のキューの送信側または受信側を設定します。 アドレス式の使用。
<broker-connections> <amqp-connection uri="tcp://HOST:PORT" name="other-server"> <sender address-match="queues.#"/> <!-- notice the local queues for remotequeues.# need to be created on this broker --> <receiver address-match="remotequeues.#"/> </amqp-connection> </broker-connections> <addresses> <address name="remotequeues.A"> <anycast> <queue name="remoteQueueA"/> </anycast> </address> <address name="queues.B"> <anycast> <queue name="localQueueB"/> </anycast> </address> </addresses>
キュー名の使用。
<broker-connections> <amqp-connection uri="tcp://HOST:PORT" name="other-server"> <receiver queue-name="remoteQueueA"/> <sender queue-name="localQueueB"/> </amqp-connection> </broker-connections> <addresses> <address name="remotequeues.A"> <anycast> <queue name="remoteQueueA"/> </anycast> </address> <address name="queues.B"> <anycast> <queue name="localQueueB"/> </anycast> </address> </addresses>
受信側は、すでに存在するローカルキューにのみ一致できます。そのため、受信側が使用されている場合は、キューがローカルに事前作成されることを確認します。そうしないと、ブローカーはリモートキューおよびアドレスに一致できません。
送信側と受信側は同じ宛先で作成しないでください。送受信の無限ループが発生するためです。