2.2. ルーターとは
AMQ Interconnect は、通常のユーザープログラムまたはデーモンとして実行されるアプリケーションレイヤープログラムです。AMQ Interconnect の実行中のインスタンスはルーターと呼ばれます。
- ルーターがメッセージに関して責任を行ならない
- ルーターはプロデューサーとコンシューマー間でメッセージを転送しますが、メッセージブローカーとは異なり、メッセージの処理は取りません。代わりに、ルーターは、配信の保証を満たすように、メッセージセットを伝播し、ネットワーク全体でメッセージを伝播します。つまり、ルーターネットワークは複数の中間ルーターによってメッセージを提供し、コンシューマーが同じパス全体でそのメッセージの確認応答をルーティングします。メッセージの責任は、直接接続されているかのようにプロデューサーからコンシューマーに転送されます。
- ルーターは、ルーターネットワークを形成するために組み合わされます。
- 多くの場合、ルーターはルーターネットワークと呼ばれる複数のルーターのトポロジーにデプロイされます。ルーターは、Open Shortest Path First (OSPF) と Intermediate System (IS-IS) プロトコルに類似したリンク状態ルーティングプロトコルおよびアルゴリズムを使用して、すべてのメッセージソースから最適なパスを計算し、障害から迅速に復元します。ルーターネットワークは、冗長なネットワークパスに依存して、システムやネットワークに障害が発生した場合の接続を継続できます。
- ルーターは直接メッセージングパターンと間接メッセージングパターンの両方を強化
メッセージングクライアントは、単一の AMQP 接続をルーターネットワークに接続することができ、その接続でメッセージをネットワーク上の任意のルーターに接続する 1 つ以上のメッセージブローカーと交換できます。同時に、クライアントはブローカーに関連することなく、他のエンドポイントとメッセージを直接交換できます。
例2.1 メッセージブローカーの使用の改良
ルーターは、スケーラブルで分散された分散作業キューを提供するメッセージブローカーのクラスターを強化できます。
ルーターネットワークは、プロデューサーを 1 つのアドレスに公開し、コンシューマーが単一のアドレスにサブスクライブすることで、ブローカークラスターを単一のキューとして表示できます。ルーターネットワークはクラスター内の任意のブローカーにワークを分散し、任意のコンシューマーに対して任意のブローカーから作業を収集できます。
ルーターはクライアントに影響を与えずにブローカーをクラスターから追加または削除できるため、ブローカークラスターのスケーラビリティーを向上させます。
また、ルーターは "stuck messages" がよく難しいことが難しくなります。ルーターネットワークがない場合、コンシューマーがメッセージを持たないブローカーに接続されている場合 (ただしクラスターの他のブローカーにメッセージがある場合)、メッセージを転送するか、stuck のままにする必要があります。ルーターは、すべてのコンシューマーがルーターネットワーク経由ですべてのブローカーに接続されているため、この問題を解決します。すべてのブローカーのメッセージをコンシューマーに配信できます。