送信先が管理者作成、自動作成、一時のいずれかによって、クラスタ内で送信先が伝播される方法、およびコネクションまたはブローカに障害が発生した場合の送信先の処理方法が変わります。次のサブセクションで、送信先が作成される方法と、その複製方法を決定するユースケースをいくつか検証します。次のサブセクションを参照してください。
次の図は、クライアントがキューにプロデュースされ、応答先モデルを使用する場合に送信先がどのように作成され、複製されるかを示します。
管理者は、物理的な送信先 QW を作成します。キューは、作成時にクラスタ全体に複製されます。
プロデューサ ProdQW がメッセージをキュー QW に送信し、応答先モデルを使用して、応答を一時キュー TempQ1W に送信します。一時キューは、アプリケーションが一時送信先を作成し、コンシューマを追加するときに作成および複製されます。
ホームブローカ BrokerW は、QW に送信されたメッセージを保持し、このメッセージの選択条件を満たす最初のアクティブなコンシューマにメッセージをルーティングします。メッセージを受信する準備ができたコンシューマに応じて、メッセージは、コンシューマ C1QW (BrokerX 上) またはコンシューマ C2QW (BrokerY 上) に配信されます。メッセージを受信したコンシューマは、送信先 TempQ1W に応答を送信します。
次の図は、送信先が存在しないために自動作成される場合に、その送信先にメッセージを送信するプロデューサに送信先を作成、複製する方法を示します。
プロデューサ ProdAutoQY がブローカ上に存在していない送信先 AutoQY にメッセージを送信します。
ブローカは、メッセージを保持し、送信先 AutoQY を作成します。
自動作成の送信先は、クラスタ全体に自動的に複製されません。コンシューマがキュー AutoQY からのメッセージの受信を選択したときにのみ、コンシューマのホームブローカが送信先 AutoQY を作成して、コンシューマにメッセージを送信します。1 つのコンシューマが自動作成の送信先を作成した時点で、送信先がクラスタ全体に複製されます。この例では、コンシューマ CAutoQY が送信先を作成すると複製が行われます。
次の図では、クライアントが、管理者によって作成されたトピック送信先にメッセージをパブリッシュする場合に、送信先がどのように作成され、複製されるかを示します。
管理者は、物理的なトピック送信先 TY を作成します。管理者作成の送信先 TY は、送信先が使用される前にブローカクラスタ全体に複製されます。
パブリッシャー PubTY がメッセージをトピック TY に送信します。
ホームブローカ BrokerY は、TY にパブリッシュされたすべてのメッセージを保持し、それらのメッセージをこのメッセージの選択条件に一致するすべてのトピックサブスクライバにルーティングします。この例では、C1TY および C2TY はトピック TY にサブスクライブされます。
表 4–2 は、クラスタ内のさまざまな種類の送信先が複製および削除される方法を説明しています。
表 4–2 クラスタ内の送信先の処理