分散パブリッシュ/サブスクライブ・ネットワークの計画

1 つのキュー・マネージャー上で作成されるサブスクリプションが、ネットワーク内の別のキュー・マネージャーに接続されたアプリケーションによって公開されるメッセージのうち一致するものを受け取るような、キュー・マネージャーのネットワークを作成することができます。 適切なトポロジーを選択するには、手動制御の要件、ネットワークのサイズ、変更の頻度、アベイラビリティー、およびスケーラビリティーについて考慮する必要があります。

始める前に

このタスクでは、担当者が分散パブリッシュ/サブスクライブ・ネットワークとその動作についてよく理解していることが前提とされています。 技術概要について詳しくは、『分散パブリッシュ/サブスクライブのネットワーク』を参照してください。

本タスクについて

パブリッシュ/サブスクライブ・ネットワークの基本的なトポロジーとしては、以下の 3 つがあります。
  • 直接ルーティング型クラスター
  • トピック・ホスト・ルーティング型クラスター
  • 階層
最初の 2 つのトポロジーの場合、開始点は IBM® MQ クラスター構成です。 3 番目のトポロジーは、クラスターを使用する場合と使用しない場合のいずれも作成できます。 基礎となるキュー・マネージャー・ネットワークの計画については、分散キューおよびクラスターの計画を参照してください。

直接ルーティング型クラスター は、クラスターが既に存在する場合に構成するトポロジーとして最もシンプルなものです。 どのキュー・マネージャー上で定義するトピックも、クラスター内のあらゆるキュー・マネージャー上で自動的に使用可能となります。 また、パブリケーションは、パブリッシュ側アプリケーションの接続されている任意のキュー・マネージャーから、一致するサブスクリプションの存在するキュー・マネージャーのそれぞれに直接ルーティングされます。 このシンプルな構成は、 IBM MQ がクラスター内のすべてのキュー・マネージャー間で高水準の情報共有と接続を維持していることに依存しています。 小規模でシンプルなネットワーク (キュー・マネージャーの数が少なく、またパブリッシャーとサブスクライバーの集合が固定している) では、これで十分です。 しかし、より大規模な、または動的に変化する環境で使用した場合は、オーバーヘッドの点で問題が発生する可能性があります。 パブリッシュ/サブスクライブ・クラスターでの直接ルーティングを参照してください。

トピック・ホスト・ルーティング型クラスター には直接ルーティング型クラスターの場合と同じメリットがあり、クラスター内のどのキュー・マネージャーで定義するトピックも、クラスター内のあらゆるキュー・マネージャー上で自動的に使用可能になります。 しかし、トピック・ホスト・ルーティング型クラスターの場合、各トピックのホストとなるキュー・マネージャーを注意深く選択する必要があります。 そのトピックのための情報とパブリケーションのすべてが、それらのトピック・ホスト・キュー・マネージャーを通過することになるからです。 つまり、システムは、キュー・マネージャーすべての間でのチャネルと情報フローを保守する必要がありません。 しかし、そのことはまた、パブリケーションがサブスクライバーに直接送信されなくなり、トピック・ホスト・キュー・マネージャー経由でルーティングされることになる可能性があることも意味しています。 そのような理由で、特に、トピックのホスティング担当のキュー・マネージャーでは、システムに追加の負荷がかかる可能性があります。 トポロジーは、十分に注意深く計画する必要があります。 このトポロジーは、含まれるキュー・マネージャーの数の多いネットワークにおいて、あるいはパブリッシャーとサブスクライバーの動的セットをホストする (つまり、パブリッシャーやサブスクライバーの追加と削除が頻繁になされる) ネットワークにおいて、特に有効です。 経路のアベイラビリティーを向上させ、パブリケーションのワークロードを水平方向にスケーリングするため、追加のトピック・ホストを定義することができます。 パブリッシュ/サブスクライブ・クラスターでのトピック・ホスト・ルーティングを参照してください。

階層 は、構成の手動セットアップを必要とする度合いが最も高く、トポロジーの変更が最も困難です。 階層内の各キュー・マネージャーの間の関連と、その直接の関係を手動で構成する必要があります。 関係を構成した後、(前の 2 つのトポロジーの場合) パブリケーションは、階層内の他のキュー・マネージャー上のサブスクリプションにルーティングされます。 パブリケーションは、階層関係を使用してルーティングされます。 これにより、特定のトポロジーをさまざまな要件に合わせて構成することができますが、これにより、サブスクリプションに到達するために、中間キュー・マネージャーを介して多くのホップを必要とするパブリケーションも生成されます。 階層を経由するパブリケーションの経路は常に 1 つのみであるため、それぞれのキュー・マネージャーのアベイラビリティーが重要になります。 多くの場合、階層を使用することが望ましいのは、単一クラスターを構成することが不可能な場合のみです。 例えば、複数の組織にまたがる場合などです。 パブリッシュ/サブスクライブ階層でのルーティングを参照してください。

必要な場合には、上記の 3 種類のトポロジーを組み合わせることにより、特定の地理的要件に対処することができます。 例については、 複数のクラスターのトピック・スペースの結合を参照してください。

実際の分散パブリッシュ/サブスクライブ・ネットワークのために適切なトポロジーを選択するには、以下のさまざまな要素を考慮する必要があります。
  • ネットワークの規模はどの程度の大きさか?
  • 構成に対してどの程度の手動制御を必要とするか?
  • トピックとサブスクリプションの点で、またキュー・マネージャーに関して、システムはどの程度動的に変化するか?
  • アベイラビリティーとスケーラビリティーの要件は何か?
  • すべてのキュー・マネージャーを相互に直接接続することは可能か?

手順

  • ネットワークの規模としてどの程度の大きさが必要かを見積もります。
    1. 必要なトピックの数を見積もります。
    2. 予期されるパブリッシャーとサブスクライバーの数を見積もります。
    3. パブリッシュ/サブスクライブ・アクティビティーに関与するキュー・マネージャーの数を見積もります。

    ネットワーク内のキュー・マネージャーの数が多く、処理するパブリッシャーとサブスクライバーの数も多い場合は、トピック・ホスト・ルーティング型クラスターまたは階層を使用することが必要になることでしょう。 直接ルーティング型クラスターは、手動構成がほとんど不要であり、小規模なネットワーク、または変化のない固定したネットワークに適したソリューションとなり得ます。

  • トピック、パブリッシャー、またはサブスクライバーのそれぞれをどのキュー・マネージャーがホストするのかについて、手動制御がどの程度必要かを考慮します。
    1. キュー・マネージャーのうちのあるものが他のものより処理能力が低いかどうかを考慮します。
    2. キュー・マネージャーのうちのいくつかへの通信リンクが他のものよりも脆弱かどうかを考慮します。
    3. トピックのパブリケーションの数が多く、サブスクライバーの数が少ないのがどんな場合かを特定します。
    4. トピックのサブスクライバーの数が多く、パブリケーションの数が少ないのはどんな場合かを特定します。

    すべてのトポロジーにおいて、パブリケーションは、他のキュー・マネージャー上のサブスクリプションに配信されます。 直接ルーティング型クラスターの場合、それらのパブリケーションは、サブスクリプションに至る最短パスを経由します。 トピック・ホスト・ルーティング型クラスターまたは階層の場合、パブリケーションの経路を自分で制御することになります。 キュー・マネージャーごとに処理能力が異なる場合、またはアベイラビリティーとコネクティビティーの点でレベルが異なる場合、特定のワークロードを特定のキュー・マネージャーに割り当てるようにするとよいでしょう。 それは、トピック・ホスト・ルーティング型クラスターまたは階層を使用することにより実現できます。

    すべてのトポロジーにおいて、パブリッシュ側アプリケーションを可能な限りサブスクリプションと同じキュー・マネージャー上に配置するなら、オーバーヘッドを最小限に抑え、パフォーマンスを最大にすることができます。 トピック・ホスト・ルーティング型クラスターの場合は、トピックをホストするキュー・マネージャー上にパブリッシャーまたはサブスクライバーを置くことを考慮してください。 これにより、パブリケーションをサブスクライバーに渡す際のキュー・マネージャー間で余分なホップが除去されます。 このアプローチは、トピックのパブリッシャーの数が多くてサブスクライバーの数が少ない場合、またはサブスクライバーの数が多くてパブリッシャーの数が少ない場合に特に有効です。 例えば、 集中型パブリッシャーまたはサブスクライバーを使用したトピック・ホスト・ルーティングを参照してください。

  • ネットワーク・アクティビティーがどの程度動的に変化するかを考慮します。
    1. さまざまな異なるトピックについて、サブスクライバーがどれほど頻繁に追加されたり削除されたりするかを見積もります。

      キュー・マネージャーのサブスクリプションが追加されたり削除されたりする場合、それがその特定のトピック・ストリングの最初または最後のサブスクリプションであるなら、その情報はトポロジー内の他のキュー・マネージャーに伝達されます。 直接ルーティング型クラスターおよび階層の場合、そのサブスクリプション情報は、トピックのパブリッシャーが属するものも属していないものも含め、トポロジー内のあらゆるキュー・マネージャーに伝搬されます。 トポロジーが多数のキュー・マネージャーで構成されている場合、これによりパフォーマンス上の大きなオーバーヘッドが発生する可能性があります。 トピック・ホスト・ルーティング型クラスターの場合、この情報は、サブスクリプションのトピック・ストリングにマップされるクラスター化トピックをホストするキュー・マネージャーにのみ伝搬されます。

      パブリッシュ/サブスクライブのクラスタリング: ベスト・プラクティスの「 サブスクリプションの変更と動的トピック・ストリング 」セクションも参照してください。

      注: 多数の固有のトピック・ストリングのセットが急速に絶えず変更されている非常に動的なシステムでは、モデルを 全対象パブリッシュ ・モードに切り替えることをお勧めします。 パブリッシュ/サブスクライブ・ネットワークでのサブスクリプションのパフォーマンスを参照してください。
    2. トポロジー内のキュー・マネージャーがどの程度動的に変化するかを考慮します。

      階層では、トポロジー内のキュー・マネージャーに変更があるたびに、手動で階層に挿入したり階層から削除したりすることが必要になるため、階層内の上位でキュー・マネージャーに変更がある場合には、十分な注意が必要です。 階層内のキュー・マネージャーでは、手動構成によるチャネル接続も使用されていることが少なくありません。 階層でキュー・マネージャーを追加/削除するたびに、チャネルを追加/削除することによってこれらの接続を保守する必要があります。

      パブリッシュ/サブスクライブ・クラスターの場合、キュー・マネージャーは、クラスターに参加することが初めて必要になった時点で他のキュー・マネージャーに自動的に接続され、トピックとサブスクリプションを自動的に認識するようになります。

  • 経路のアベイラビリティーとパブリケーション・トラフィックのスケーラビリティーに関する要件を考慮します。
    1. あるキュー・マネージャーが使用不可の場合であっても、パブリッシュ側キュー・マネージャーからサブスクライブ側キュー・マネージャーに至る利用可能な経路が常に存在することが必要かどうかを判断します。
    2. ネットワークがどの程度スケーラブルであることが必要かを考慮します。 パブリケーション・トラフィックのレベルが単一キュー・マネージャーまたはチャネル経由でルーティングするには高すぎるかどうかを判別します。 また、そのレベルのパブリケーション・トラフィックを単一トピック・ブランチで処理しなければならないのか、それとも複数のトピック・ブランチに分散させることが可能かどうかを判断します。
    3. メッセージの順序を維持することが必要かどうかを考慮します。

    直接ルーティング型クラスターでは、パブリッシュ側キュー・マネージャーからのメッセージをサブスクライブ側キュー・マネージャーに直接送信するため、経路沿いにある中間キュー・マネージャーのアベイラビリティーについて心配する必要はありません。 同じように、中間キュー・マネージャーへのスケーリングも考慮する必要はありません。 しかし、前述のように、特に規模の大きい、または動的に変化する環境の場合、クラスター内のすべてのキュー・マネージャーの間でのチャネルと情報フローの自動保守のためのオーバーヘッドは、パフォーマンスに大きく影響する可能性があります。

    トピック・ホスト・ルーティング型クラスターは、個々のトピックに合わせて調整することが可能です。 パブリケーション・ワークロードがかなり大きいトピック・ツリーの各ブランチがそれぞれ異なるキュー・マネージャー上に定義されていること、また、各キュー・マネージャーに、トピック・ツリーのそのブランチで予期されるワークロードに対して十分の処理能力と可用性があることを確認してください。 また、各トピックを複数のキュー・マネージャーで定義することにより、アベイラビリティーと水平スケーリングをさらに向上させることができます。 これにより、使用不可状態のトピック・ホスト・キュー・マネージャーを回避したルーティングと、その間でのパブリケーション・トラフィックのワークロード・バランシングが、システムにおいて可能になります。 しかし、特定のトピックを複数のキュー・マネージャーで定義する場合、以下の制約も発生することになります。

    多重経路による階層においてルーティングの高可用性とスケーラビリティーはいずれも構成できません。

    パブリッシュ/サブスクライブのクラスタリング: ベスト・プラクティス」の「 パブリケーション・トラフィック 」セクションも参照してください。

  • これらの見積もりに基づき、以下のリンクを使用して、トピック・ホスト・ルーティング型クラスター、直接ルーティング型クラスター、階層のうちどれを使用するか、それともそれらのトポロジーの混合を使用するのかを決定してください。

次のタスク

これで、分散パブリッシュ/サブスクライブ・ネットワークの構成作業の準備ができました。