Sun Java System Message Queue 3.7 UR1 技術の概要

クラスタ化と送信先

送信先が管理者作成、自動作成、一時のいずれかによって、クラスタ内で送信先が伝播される方法、およびコネクションまたはブローカに障害が発生した場合の送信先の処理方法が変わります。次のサブセクションで、送信先が作成される方法と、その複製方法を決定するユースケースをいくつか検証します。次のサブセクションを参照してください。

応答先モデルを使用したキューへのプロデュース

次の図は、クライアントがキューにプロデュースされ、応答先モデルを使用する場合に送信先がどのように作成され、複製されるかを示します。

図 4–2 クラスタ内の送信先のレプリケーション: 応答先モデルを使用するキュー

クラスタ内の送信先の伝播を示す図。詳細がテキストで説明される。

  1. 管理者は、物理的な送信先 QW を作成します。キューは、作成時にクラスタ全体に複製されます。

  2. プロデューサ ProdQW がメッセージをキュー QW に送信し、応答先モデルを使用して、応答を一時キュー TempQ1W に送信します。一時キューは、アプリケーションが一時送信先を作成し、コンシューマを追加するときに作成および複製されます。

  3. ホームブローカ BrokerW は、QW に送信されたメッセージを保持し、このメッセージの選択条件を満たす最初のアクティブなコンシューマにメッセージをルーティングします。メッセージを受信する準備ができたコンシューマに応じて、メッセージは、コンシューマ C1QW (BrokerX 上) またはコンシューマ C2QW (BrokerY 上) に配信されます。メッセージを受信したコンシューマは、送信先 TempQ1W に応答を送信します。

自動作成の送信先へのプロデュース

次の図は、送信先が存在しないために自動作成される場合に、その送信先にメッセージを送信するプロデューサに送信先を作成、複製する方法を示します。

図 4–3 クラスタ内の送信先のレプリケーション: 自動作成の送信先

クラスタ内の送信先の伝播を示す図。詳細がテキストで説明される。

  1. プロデューサ ProdAutoQY がブローカ上に存在していない送信先 AutoQY にメッセージを送信します。

  2. ブローカは、メッセージを保持し、送信先 AutoQY を作成します。

    自動作成の送信先は、クラスタ全体に自動的に複製されません。コンシューマがキュー AutoQY からのメッセージの受信を選択したときにのみ、コンシューマのホームブローカが送信先 AutoQY を作成して、コンシューマにメッセージを送信します。1 つのコンシューマが自動作成の送信先を作成した時点で、送信先がクラスタ全体に複製されます。この例では、コンシューマ CAutoQY が送信先を作成すると複製が行われます。

トピック送信先へのパブリッシュ

次の図では、クライアントが、管理者によって作成されたトピック送信先にメッセージをパブリッシュする場合に、送信先がどのように作成され、複製されるかを示します。

図 4–4 クラスタ内の送信先の複製: トピックへのパブリッシュ

クラスタ内の送信先の伝播を示す図。詳細がテキストで説明される。

  1. 管理者は、物理的なトピック送信先 TY を作成します。管理者作成の送信先 TY は、送信先が使用される前にブローカクラスタ全体に複製されます。

  2. パブリッシャー PubTY がメッセージをトピック TY に送信します。

  3. ホームブローカ BrokerY は、TY にパブリッシュされたすべてのメッセージを保持し、それらのメッセージをこのメッセージの選択条件に一致するすべてのトピックサブスクライバにルーティングします。この例では、C1TY および C2TY はトピック TY にサブスクライブされます。

コネクションまたはブローカに障害が発生した場合の送信先の処理

表 4–2 は、クラスタ内のさまざまな種類の送信先が複製および削除される方法を説明しています。

表 4–2 クラスタ内の送信先の処理

送信先 

伝播と削除 

管理者作成 

送信先は、作成時にクラスタ内に伝播され、各ブローカが送信先に関する情報を持続的に保存します。 

送信先は、管理者が明示的に送信先を削除すると破棄されます。 

マスターブローカがある場合は、クラスタ内のブローカが状態情報を同期できるように、作成と削除のレコードがマスターブローカ内に保存されます。 

一時 

送信先は、作成時にクラスタ全体に伝播されます。 

一時送信先に関連付けられているコンシューマが再接続を許可されている場合、送信先はコンシューマのホームブローカ上に持続的に保存されます。再接続できない場合、送信先は保存されません。 

コンシューマがコネクションを失った場合、送信先はすべてのブローカ上で削除されます。 

コンシューマのホームブローカがクラッシュし、コンシューマが再接続を許可されている場合、このコンシューマに関連付けられている一時送信先が監視されます。コンシューミングクライアントが一定の時間内に再接続しない場合、クライアントに障害が発生したと見なされ、送信先が削除されます。 

自動作成 

プロデューサが作成され、送信先が存在しない場合、プロデューサのホームブローカ上に送信先が作成されます。 

存在しない送信先用のコンシューマが作成された場合、コンシューマと送信先に関する情報がクラスタ全体に伝播されます。 

自動作成の送信先は、管理者が明示的に削除することも、自動的に削除することもできます。 

  • 一定の時間にわたりコンシューマまたはメッセージがない場合は、ブローカごとに削除される。

  • ブローカの再起動時、その送信先用のメッセージがない場合は、ブローカごとに削除される。