4.3. ポイントツーポイントメッセージング用のアドレスの設定
ポイントツーポイントメッセージングは、プロデューサーによって送信されたメッセージが 1 つのコンシューマーのみを持つ一般的なシナリオです。AMQP および JMS メッセージプロデューサーおよびコンシューマーは、たとえば、ポイントツーポイントメッセージングキューを使用できます。アドレスに関連付けられたキューがポイントツーポイントでメッセージを受信するようにするには、ブローカー設定で指定の address
要素に anycast
ルーティングタイプを定義します。
anycast
を使用してアドレスでメッセージを受信すると、ブローカーはアドレスに関連付けられたキューを見つけ、メッセージへメッセージをルーティングします。その後、コンシューマーはそのキューからメッセージを消費するよう要求される可能性があります。複数のコンシューマーが同じキューに接続する場合、コンシューマーはそれらを同等に処理できる場合、メッセージがコンシューマー間で均等に分散されます。
以下の図は、ポイントツーポイントメッセージングの例を示しています。
4.3.1. 基本的なポイントツーポイントメッセージングの設定
以下の手順は、ポイントツーポイントメッセージングに対して単一のキューを持つアドレスを設定する方法を示しています。
手順
-
<broker_instance_dir>/etc/broker.xml
設定ファイルを開きます。 address
の選択されたqueue
エレメントの周りに、anycast
設定エレメントをラップします。address
要素とqueue
要素の両方のname
属性の値が同じであることを確認します。以下に例を示します。<configuration ...> <core ...> ... <address name="my.anycast.destination"> <anycast> <queue name="my.anycast.destination"/> </anycast> </address> </core> </configuration>
4.3.2. 複数のキューのポイントツーポイントメッセージングの設定
anycast
ルーティングタイプを使用するアドレスで複数のキューを定義できます。ブローカーは関連するすべてのキューに、anycast
アドレスに送信されたメッセージを均等に分散します。Fully Qualified Queue Name(FQQN) を指定することで、クライアントを特定キューに接続できます。複数のコンシューマーが同じキューに接続する場合、ブローカーはコンシューマー間でメッセージを均等に分散します。
以下の図は、2 つのキューを使用したポイントツーポイントメッセージングの例を示しています。
以下の手順は、複数のキューを持つアドレスにポイントツーポイントメッセージングを設定する方法を説明します。
手順
-
<broker_instance_dir>/etc/broker.xml
設定ファイルを開きます。 address
要素のqueue
要素でanycast
設定要素をラップします。以下に例を示します。<configuration ...> <core ...> ... <address name="my.anycast.destination"> <anycast> <queue name="q1"/> <queue name="q2"/> </anycast> </address> </core> </configuration>
クラスターの複数のブローカーにミラーリングされている設定がある場合、クラスターはプロデューサーおよびコンシューマーへの不透明な方法でポイントツーポイントメッセージングを負荷分散できます。正確な動作は、クラスターに対してメッセージ負荷分散ポリシーの設定方法によって異なります。
関連情報
詳細情報:
- 完全修飾キュー名の指定。「完全修飾キュー名の指定」 を参照してください。
- ブローカークラスターにメッセージの負荷分散を設定する方法は、「ブローカークラスターがメッセージ負荷のバランスを取る方法」 を参照してください。