パブリッシュ/サブスクライブ・トポロジー

パブリッシュ/サブスクライブ・アプリケーションは、互いに接続された 1 つ以上のブローカーの ネットワークから構成されます。ブローカーはすべて同じ物理システム上に存在することも、 複数の物理システムに分散することもできます。ブローカーを互いに接続することによって、 ネットワーク中のどのブローカーのクライアントもパブリケーションを受け取ることができます。

これには、以下の利点があります。

パブリケーションは、パブリッシュされているトピックに興味を示したサブスクライバーを持つブローカーにのみ送信されます。 これは、ネットワーク・トラフィックを最適化するのに役立ちます。

集合

集合とは、完全に相互接続され、パブリッシュ/サブスクライブ・アプリケーションに合わせて マルチブローカー・ネットワークの一部を形成するブローカーのセットです。

ブローカーは、複数の集合に属することはできません。同じ集合内のブローカーは、 物理的に別々のコンピューターに存在することができます。 ブローカー・キュー・マネージャーの各ペアは、WebSphere MQ チャネルのペアによって一緒に 接続されていなければなりません。

次の図は、3 つのブローカーからなる単純な集合を示します。

3 つのブローカーの集合

ブローカー・ネットワーク

ブローカー・ドメインを作成するためにブローカーを接続するには以下の 3 つの方法があります。
  • ブローカーを階層ツリー構造で結合することができます。
  • ブローカーをグループ化して集合にすることができます。 集合とは、相互に直接接続された 1 つまたは複数のブローカーのセットです。
  • 集合を結合してツリー構造にすることができます。これは、ブローカーを一緒にグループ化する 前述の 2 つの方法の組み合わせです。

ブローカーが属することのできる集合は 1 つだけです。

集合内のブローカーは、すべて 1 つの物理システム上に置くことも、それぞれを別個の物理システムに置くこともできます。

集合には、以下の利点があります。
  • 同じ集合内の特定のブローカーに宛てたメッセージは、 直接そのブレーカーに移送されるので、中間ブローカーに渡す必要がありません。 これにより、階層ツリー構成と比較して、ブローカーのパフォーマンスが向上し、 ブローカー間の パブリッシュ/サブスクライブ トラフィックを最適化できます。
  • クライアントが地理的に分散している場合、各ロケーションに集合をセットアップし、 (単一のブローカーを各集合で結合することによって) 集合を接続し、 ネットワークを介したパブリケーションとサブスクリプション登録のフローを最適化できます。
  • パブリッシュおよびサブスクライブする共有トピックに応じて、クライアントをグループ化することができます。

    共通トピックを共用するクライアントは、集合内のブローカーに接続できます。 共通のパブリケーションは、集合内で効率的に移送されます。これは、それらの共通トピックの 候補を持つ最低 1 つのクライアントも持たないブローカーを介して移動することがないためです。

  • クライアントは、最も近いブローカーに接続して、パフォーマンスを向上させることができます。 ブローカーは、集合内のすべてのブローカーから、クライアントのサブスクリプション登録に 一致するすべてのメッセージを受け取ります。

    このブローカーやこのブローカーのキュー・マネージャーから要求される他のサービスでも、 クライアント・アプリケーションのパフォーマンスが向上します。 クライアント・アプリケーションは、パブリッシュ/サブスクライブおよび point-to-point メッセージングの両方を使用できます。

  • より多くのブローカーを集合に追加して、その集合内でワークロードを共用することによって、ブローカーごとのクライアント数を削減することができます。

次の図は、階層構造にグループ化された 6 つの集合のネットワークを示します。


この図は、階層構造にグループ化される 6 つの集合を示します。 2 つのブローカーで成る集合が、それぞれ 4 つ、1 つ、および 3 つのブローカーを持つ 3 つの集合に接続されています。 4 つのブローカーで成る集合では、それぞれ 5 つと 3 つのブローカーを持つさらに 2 つの集合が接続されています。

集合の作成時に、ワークベンチは他の集合およびブローカーに対して作成する接続が有効であることを確認します。 メッセージがネットワーク内で永久に循環する可能性のある接続は作成できないようになっています。 また、要求される WebSphere MQ 接続がまだ定義されていないブローカーの集合を作成することもできません。

集合内の各ブローカーのキュー・マネージャーには、集合内の他のすべてのキュー・マネージャーへの接続がなければなりません。

集合の各ブローカーは、その隣接するブローカーのリストを保守します。

隣接するブローカーは、次のいずれかです。

近隣のブローカーの完全なリストはブローカーの近隣を形成します。

関連概念
ブローカー

関連タスク
パブリッシュ/サブスクライブ・アプリケーションの開発