12.2.2. リンクルートの作成
リンクルートは、送信元とルーターを通過する受信側間のリンクを確立します。着信リンクと発信リンクルートを設定し、ルーターがクライアントからリンク接続を受信し、特定の宛先に送信することができます。
リンクルーティングでは、クライアントトラフィックはルーターではなくブローカーで処理されます。クライアントには、ルーターからブローカーのキューへの直接のリンクがあります。そのため、各クライアントは個別のプロデューサーまたはコンシューマーです。
ブローカーへの接続に失敗すると、ルーティングされたリンクがデタッチされ、ルーターはブローカー (またはバックアップ) への再接続を試みます。接続が再確立されると、ブローカーへのリンクルートが再度到達可能になります。
クライアントの視点からは、クライアントは切り離されたリンク (送信者またはレシーバー) を認識しますが、失敗した接続ではありません。したがって、ブローカー接続障害が発生した場合に、クライアントがリンクを再アタッチする場合は、クライアントでこの機能を設定する必要があります。または、リンクルーティングの代わりに、自動リンクでメッセージルーティングを使用できます。詳細は、「ブローカーキューによるメッセージのルーティング」 を参照してください。
手順
ブローカーに外向き接続がない場合は、その接続を追加します。
キューが複数のブローカーにシャードされている場合は、各ブローカーの接続を追加する必要があります。詳細は、「外部 AMQP コンテナーへの接続」 を参照してください。
クライアントがローカルトランザクションをブローカーに送信する場合は、トランザクションコーディネーターのリンクルートを作成します。
linkRoute { prefix: $coordinator 1 connection: my_broker direction: in }
- 1
$coordinator
接頭辞は、このリンクルートをトランザクションコーディネーターとして指定します。クライアントがトランザクションセッションを開くと、トランザクションの開始および終了リクエストは、ブローカーへのこのリンクルートと共に伝播されます。
AMQ Interconnect では、複数のブローカーへのトランザクションのルーティングはサポートされません。環境に複数のブローカーがある場合は、単一のブローカーを選択し、すべてのトランザクションをそのブローカーにルーティングします。
クライアントがこのリンクルートにメッセージを送信するには、受信リンクルートを作成します。
linkRoute { prefix: my_queue connection: my_broker direction: in ... }
prefix
|pattern
ルーティングされたリンク添付の宛先となるブローカーキューに一致するアドレス接頭辞またはパターン。この接頭辞またはパターンに一致するメッセージはすべて、リンクルートとともに分散されます。接頭辞を指定して、アドレスの正確なアドレスまたは開始セグメントと一致するように指定できます。または、ワイルドカードを使用してアドレスに一致するパターンを指定できます。
接頭辞は、
.
または/
文字のいずれかで区切られたアドレス内の正確なアドレスまたは最初のセグメントと一致します。たとえば、接頭辞my_address
は、my_address
とmy_address.1
およびmy_address/1
のアドレスと一致します。ただし、my_address1
と一致しません。パターンは、パターンに対応するアドレスと一致します。パターンは、
.
または/
のいずれかで区切られた単語シーケンスです。ワイルドカード文字を使用して単語を表すことができます。*
文字は 1 つの単語にマッチし、#
文字はゼロ以上の単語のシーケンスと一致します。*
および#
文字はワイルドカードとして予約されています。したがって、メッセージアドレスでは使用しないでください。アドレスパターンの作成に関する詳細は、「アドレスパターンの一致」 を参照してください。
注記prefix
値をpattern
に変換するには 、/#
をそれに追加します。たとえば、接頭辞a/b/c
は、パターンa/b/c/#
と同等です。connection
|containerID
ルーターによるブローカーへの接続方法。発信接続 (
connection
) またはブローカーのコンテナー ID (containerID
) のいずれかを指定できます。この接続で複数のブローカーがルーターに接続されている場合、リンクルートの接頭辞またはパターンに一致するアドレスの要求がブローカー全体で分散されます。または、特定のブローカーを指定する場合は、
containerID
を使用し、ブローカーのコンテナー ID を追加します。direction
-
このリンクルート上のルーターネットワークにメッセージを送信するように、この属性を
in
に設定します。
その他の属性の詳細は、
qdrouterd.conf
の man ページの linkRoute を参照してください。クライアントがこのリンクルート上のメッセージを受信するには、出力リンクルートを作成します。
linkRoute { prefix: my_queue connection: my_broker direction: out ... }
prefix
|pattern
ルーティングされたリンク割り当てを受信するブローカーキューに一致するアドレス接頭辞またはパターン。この接頭辞またはパターンに一致するメッセージはすべて、リンクルートとともに分散されます。接頭辞を指定して、アドレスの正確なアドレスまたは開始セグメントと一致するように指定できます。または、ワイルドカードを使用してアドレスに一致するパターンを指定できます。
接頭辞は、
.
または/
文字のいずれかで区切られたアドレス内の正確なアドレスまたは最初のセグメントと一致します。たとえば、接頭辞my_address
は、my_address
とmy_address.1
およびmy_address/1
のアドレスと一致します。ただし、my_address1
と一致しません。パターンは、パターンに対応するアドレスと一致します。パターンは、
.
または/
のいずれかで区切られた単語シーケンスです。ワイルドカード文字を使用して単語を表すことができます。*
文字は 1 つの単語にマッチし、#
文字はゼロ以上の単語のシーケンスと一致します。*
および#
文字はワイルドカードとして予約されています。したがって、メッセージアドレスでは使用しないでください。アドレスパターンの作成に関する詳細は、「アドレスパターンの一致」 を参照してください。
注記prefix
値をpattern
に変換するには 、/#
をそれに追加します。たとえば、接頭辞a/b/c
は、パターンa/b/c/#
と同等です。connection
|containerID
ルーターによるブローカーへの接続方法。発信接続 (
connection
) またはブローカーのコンテナー ID (containerID
) のいずれかを指定できます。この接続で複数のブローカーがルーターに接続されている場合、リンクルートの接頭辞またはパターンに一致するアドレスの要求がブローカー全体で分散されます。または、特定のブローカーを指定する場合は、
containerID
を使用し、ブローカーのコンテナー ID を追加します。direction
-
このリンクルートが受信側用であることを指定するには、この属性を
out
に設定します。
その他の属性の詳細は、
qdrouterd.conf
の man ページの linkRoute を参照してください。