分散パブリッシュ/サブスクライブ・ネットワークの計画
1 つのキュー・マネージャー上で作成されるサブスクリプションが、ネットワーク内の別のキュー・マネージャーに接続されたアプリケーションによって公開されるメッセージのうち一致するものを受け取るような、キュー・マネージャーのネットワークを作成することができます。 適切なトポロジーを選択するには、手動制御の要件、ネットワークのサイズ、変更の頻度、アベイラビリティー、およびスケーラビリティーについて考慮する必要があります。
始める前に
本タスクについて
- 直接ルーティング型クラスター
- トピック・ホスト・ルーティング型クラスター
- 階層
直接ルーティング型クラスター は、クラスターが既に存在する場合に構成するトポロジーとして最もシンプルなものです。 どのキュー・マネージャー上で定義するトピックも、クラスター内のあらゆるキュー・マネージャー上で自動的に使用可能となります。 また、パブリケーションは、パブリッシュ側アプリケーションの接続されている任意のキュー・マネージャーから、一致するサブスクリプションの存在するキュー・マネージャーのそれぞれに直接ルーティングされます。 このシンプルな構成は、 IBM MQ がクラスター内のすべてのキュー・マネージャー間で高水準の情報共有と接続を維持していることに依存しています。 小規模でシンプルなネットワーク (キュー・マネージャーの数が少なく、またパブリッシャーとサブスクライバーの集合が固定している) では、これで十分です。 しかし、より大規模な、または動的に変化する環境で使用した場合は、オーバーヘッドの点で問題が発生する可能性があります。 パブリッシュ/サブスクライブ・クラスターでの直接ルーティングを参照してください。
トピック・ホスト・ルーティング型クラスター には直接ルーティング型クラスターの場合と同じメリットがあり、クラスター内のどのキュー・マネージャーで定義するトピックも、クラスター内のあらゆるキュー・マネージャー上で自動的に使用可能になります。 しかし、トピック・ホスト・ルーティング型クラスターの場合、各トピックのホストとなるキュー・マネージャーを注意深く選択する必要があります。 そのトピックのための情報とパブリケーションのすべてが、それらのトピック・ホスト・キュー・マネージャーを通過することになるからです。 つまり、システムは、キュー・マネージャーすべての間でのチャネルと情報フローを保守する必要がありません。 しかし、そのことはまた、パブリケーションがサブスクライバーに直接送信されなくなり、トピック・ホスト・キュー・マネージャー経由でルーティングされることになる可能性があることも意味しています。 そのような理由で、特に、トピックのホスティング担当のキュー・マネージャーでは、システムに追加の負荷がかかる可能性があります。 トポロジーは、十分に注意深く計画する必要があります。 このトポロジーは、含まれるキュー・マネージャーの数の多いネットワークにおいて、あるいはパブリッシャーとサブスクライバーの動的セットをホストする (つまり、パブリッシャーやサブスクライバーの追加と削除が頻繁になされる) ネットワークにおいて、特に有効です。 経路のアベイラビリティーを向上させ、パブリケーションのワークロードを水平方向にスケーリングするため、追加のトピック・ホストを定義することができます。 パブリッシュ/サブスクライブ・クラスターでのトピック・ホスト・ルーティングを参照してください。
階層 は、構成の手動セットアップを必要とする度合いが最も高く、トポロジーの変更が最も困難です。 階層内の各キュー・マネージャーの間の関連と、その直接の関係を手動で構成する必要があります。 関係を構成した後、(前の 2 つのトポロジーの場合) パブリケーションは、階層内の他のキュー・マネージャー上のサブスクリプションにルーティングされます。 パブリケーションは、階層関係を使用してルーティングされます。 これにより、特定のトポロジーをさまざまな要件に合わせて構成することができますが、これにより、サブスクリプションに到達するために、中間キュー・マネージャーを介して多くのホップ
を必要とするパブリケーションも生成されます。 階層を経由するパブリケーションの経路は常に 1 つのみであるため、それぞれのキュー・マネージャーのアベイラビリティーが重要になります。 多くの場合、階層を使用することが望ましいのは、単一クラスターを構成することが不可能な場合のみです。
例えば、複数の組織にまたがる場合などです。 パブリッシュ/サブスクライブ階層でのルーティングを参照してください。
必要な場合には、上記の 3 種類のトポロジーを組み合わせることにより、特定の地理的要件に対処することができます。 例については、 複数のクラスターのトピック・スペースの結合を参照してください。
- ネットワークの規模はどの程度の大きさか?
- 構成に対してどの程度の手動制御を必要とするか?
- トピックとサブスクリプションの点で、またキュー・マネージャーに関して、システムはどの程度動的に変化するか?
- アベイラビリティーとスケーラビリティーの要件は何か?
- すべてのキュー・マネージャーを相互に直接接続することは可能か?