第36章 クラスター

36.1. クラスターの概要

HornetQ クラスターを使用すると、メッセージ処理の負荷を共有するために HornetQ サーバーのグループを一緒にまとめることができます。クラスター内の各アクティブノードは、独自のメッセージを管理し、独自の接続を処理するアクティブな HornetQ サーバーです。サーバーをクラスター化するよう設定するには、JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-configuration.xmlclustered 要素を true (デフォルト値は false) に設定する必要があります。

重要

/hornetq ディレクトリにすでに含まれるプロファイルに対してクラスタリングを有効にする必要があります (MinimalWeb を除くすべてのプロファイル)。/hornetq ディレクトリに含まれないプロファイルには、クラスターをサポートする適切なネイティブコンポーネントが含まれません。
クラスターは、JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-configuration.xml で他のノードへのクラスター接続を宣言する各ノードによって形成されます。ノードが別のノードに対するクラスター接続を形成する場合は、内部的にそのノードと他のノード間のコアブリッジ (34章コアブリッジ を参照) 接続が作成され、この処理が背後で透過的に行われます。各ノードに対して明示的なブリッジを宣言する必要はありません。これらのクラスター接続を使用すると、負荷を分散するためにクラスターのノード間でメッセージを移動できます。
複数のノードを一緒に接続してさまざまなトポロジーのクラスターを形成することができます。一般的なトポロジーについては、この章の後半で説明します。
クラスタのノード全体でクライアント接続を分散できるクライアントサイドロードバランシングについて説明します。また、HornetQ がノード間でメッセージを再分散して枯渇を回避するメッセージ再分散についても説明します。
クラスタリングの他の重要な部分は、クライアントまたは他のサーバーが最小の設定で接続できるようサーバーが接続詳細をブロードキャストできるサーバー検出です。

警告

JBoss Enterprise Application Platform インスタンスを 'localhost' にバインドされた HornetQ サーバーで起動した場合、HornetQ インスタンスは同じネットワーク上の別の HornetQ インスタンスとクラスターを形成できます。localhost にバインドした場合は、HornetQ サーバーに対してクラスターの隔離が提供されません。
クラスターを正常に隔離するには、 「ブロードキャストグループ」 を参照して適切にブロードキャストを設定し、各サーバーのアドレスを検出します。