2.3. ルータールートメッセージの使用方法
ルーターネットワークでは、ルーティングとは、メッセージが宛先に配信されるプロセスです。そのために、AMQ Interconnect は 2 つの異なるルーティングメカニズムを提供します。
- メッセージルーティング
メッセージルーティングにより、メッセージを任意のキャストおよびマルチキャストパターンで分散できます。これらのパターンは直接ルーティングの両方に使用できます。この場合、ルーターはメッセージブローカーと間接ルーティングなしでメッセージを分散します。これにより、ルーターはメッセージブローカーを介してメッセージを交換できます。
メッセージルーティングは以下の要件に役立ちます。
デフォルトの基本メッセージルーティング
AMQ Interconnect はデフォルトで自動的にメッセージをルーティングするため、デフォルトとは異なる動作をルーティングする必要がある場合に限り、手動設定が必要になります。
メッセージベースのルーティングパターン
メッセージルーティングは、何らかのキャストおよびマルチキャストルーティングパターンの両方をサポートします。個々のメッセージを複数のコンシューマーに分散し、マルチキャスト (または fan-out) メッセージを複数のサブスクライバーに負荷分散できます。
メッセージ配信順序が重要でない場合は、複数のメッセージブローカーにメッセージのシャーディングをシャーディングします。
あるプロデューサーからメッセージをシャーディングすると、プロデューサーのメッセージが送信順に異なる順序で受信される可能性があります。
- リンクルーティング
リンクルーティングにより、送信元とルーターネットワークを通過する受信側の間で専用の仮想パスを確立できます。リンクルートは通常、直接接続が不完全であるシナリオのメッセージブローカーにクライアントを接続するために使用されます。したがって、リンクルートは、以下のようなメッセージルーティングでできないメッセージング機能を有効にします。
トランザクションメッセージング
リンクルーティングは、1 つのブローカーへのローカルトランザクションをサポートします。分散トランザクションはサポートされません。
確実な、メッセージ配信順序
シャードキューへのリンクルーティングは、リンク上のすべてのメッセージが同じブローカーインスタンスに移動することで、プロデューサーのメッセージの配信順序を保持します。
エンドツーエンドフロー制御
フロー制御は、受信側から送信者へのリンクルート全体のクレジットフローを real します。
サーバー側のセレクター
リンクルートを使用すると、コンシューマーはブローカーのサブスクリプションのサーバー側のセレクターを提供できます。
コンシューマー固有の確認応答
リンクルートでは、変更された配信状態はブローカーによって解釈できます。たとえば、ブローカーは
undeliverable-here=true
が変更された配信状態で、あらゆるメッセージメッセージ再配信を防ぐことができます。