12.2.3. リンクルートの例: 異なるネットワーク上でのクライアントおよびブローカーの接続
この例は、リンクルートがクライアントを別のプライベートネットワークにあるメッセージブローカーに接続できる方法を示しています。
図12.6 分離されたクライアントを使用するルーターネットワーク
クライアントは、独自のネットワーク (R3) でルーターに接続するためにファイアウォールポリシーによって制限されます。ただし、リンクルートを使用して、異なるネットワーク上にある場合でも、メッセージブローカー B1 および B2 を指定した他の AMQP サービスにアクセスできます。
この例では、クライアントは Private Network 1 のブローカー B2 でホストされる b2.event-queue からメッセージを受信する必要があります。リンクルートは、クライアントとサーバー間にルーターネットワークがあることを認識していても、クライアントとブローカーを接続する。
ルーターの設定
クライアントがブローカー B2 で b2.event-queue からメッセージを受信できるようにするには、ルーター R2 が以下を実行できる必要があります。
-
ブローカー
B2への接続 -
ブローカー
B2間のルートリンク -
b2.event-queueアドレスを持つリンクの有効な宛先として、ルーターネットワークにアドバタイズします。
ルーター R2 の設定ファイルの関連する部分で、以下が表示されます。
- 1
- ルーターからブローカー
B2への外向き接続。route-containerロールにより、ルーターは外部 AMQP コンテナー (この場合はブローカー) に接続できるようになります。 - 2
- クライアント送信者からリンクを受信するための受信リンクルート。
b2で始まるアドレスがブローカーB2で始まるターゲットを持つ送信者は、brokerコネクターを使用してブローカー B2 にルーティングされます。 - 3
- クライアントレシーバーへのリンクを送信するための出力リンクルート。ソースアドレスが
b2で始まるレシーバーは、brokerコネクターを使用してブローカーB2にルーティングされます。
この設定では、ルーター R2 は、b2 で始まるターゲットおよびソースの有効な宛先としてアドバタイズできます。また、ルーターはブローカー B2 に接続でき、b2 接頭辞で始まるキューとキューからリンクをルーティングできるようにします。
必須ではありませんが、ルーター R1 と R3 でも同じ設定が必要です。
クライアントがメッセージを受信する方法
設定されたリンクルートを使用すると、クライアントは異なるネットワーク上にある場合でもブローカー B2 からメッセージを受信できます。
ルーター R2 はブローカー B2 への接続を確立します。接続が開かれると、R2 は他のルーター (R1 および R3) に、これが b2 接頭辞へのリンクルート用の有効な宛先であることを通知します。つまり、R1 または R3 に割り当てられた送信元と受信側のリンクは、最短のパスは R2 にルーティングされ、それをブローカー B2 にルーティングします。
ブローカー B2 で b2.event-queue からメッセージを受信するには、クライアントは受信側リンクを b2.event-queue のソースアドレスでそのローカルルーター (R3) に割り当てます。アドレスは b2 接頭辞に一致するため、R3 はリンクを R1 にルーティングします。これは、ルート内の次のホップから宛先にルーティングします。R1 は、リンクを R2 にルーティングし、これをブローカー B2 にルーティングします。クライアントが受信側が確立され、メッセージの受信を開始できます。
ブローカー B2 が何らかの理由で利用できない場合、ルーター R2 は b2 アドレスの宛先としてアドバタイズしません。この場合、ルーター R1 および R3 は、宛先に利用可能なルートがないことを示すエラーメッセージで、ブローカー B2 にルーティングされるべきリンク接続を拒否します。