18.15. HornetQ クラスタリング
HornetQ クラスターは、メッセージ処理負荷を共有するために HornetQ サーバーのグループを作成するために使用されます。クラスター内のアクティブな各ノードは独立した HornetQ サーバーとして機能し、独自のメッセージと接続を管理します。
クラスターを形成するために、各ノード(独立した HornetQ サーバー)はサーバー設定ファイル(
standalone.xml
および domain.xml
)の設定パラメーターを使用して別のノードでクラスター接続を宣言します。
クラスタリングでは、あるクラスターから別のクラスターへメッセージをブリッジ/ルーティングするのにコアブリッジが使用されます。コアブリッジはソースキューからメッセージを消費し、同じクラスターにある可能性があるターゲット HornetQ サーバー(ノード)へこれらのメッセージを転送します。
ノードが別のノードとクラスター接続を形成すると、内部的にコアブリッジが作成されます。各ノードは明示的なコアブリッジを作成するため、宣言する必要はありません。これらのクラスター接続により、メッセージ処理の負荷を分散するために、さまざまなクラスターのノード間でメッセージを送信できます。
クラスターノードはサーバー設定ファイル(
standalone.xml
および domain.xml
)で設定できます。
重要
サーバー設定ファイル(
standalone.xml
および domain.xml
)でノードを設定し、この設定を他のノードにコピーして対称クラスターを生成することができます。ただし、サーバー設定ファイルをコピーする場合には注意が必要です。HornetQ データ(バインディング、ジャーナル、大きなメッセージディレクトリーなど)をあるノードから別のノードにコピーすることはできません。ノードを初めて起動すると、クラスターの適切な形式に必要なジャーナルディレクトリーに一意の識別子が永続化されます。
18.15.1. サーバーディスカバリー
サーバーはー「サーバーディスカバリー」と呼ばれるメカニズムを使用して以下を行います。
- サーバーの接続詳細をメッセージングクライアントへ転送します。メッセージングクライアントは、指定の時点で稼働しているサーバーの特定の詳細を持たずにクラスターのサーバーへ接続しようとします。
- 他のサーバーへ接続します。クラスターのサーバーは、クラスターにある他のすべてのサーバーに関する特定の詳細を持たずに他のサーバーとクラスター接続を確立しようとします。
サーバーの情報は、通常の HornetQ 接続を介してメッセージングクライアントへ送信され、さらにクラスター接続を介して他のサーバーへ送信されます。
初回の接続を確立する必要があります。UDP (ユーザーデータグラムプロトコル) や JGroups などの動的サーバーディスカバリー技術を使用するか、コネクターのリストを提供して接続を確立します。