30.6. コロケートバックアップサーバー
JBoss EAP では、バックアップメッセージングサーバーを、別のライブサーバーと同じ JVM にコロケートすることもできます。たとえば、各ライブサーバーが他のバックアップをコロケートするスタンドアロンサーバーの単純な 2 ノードクラスターの例を考えましょう。このようにサーバーをコロケートする場合、共有ストアまたは複製された HA ポリシーのいずれかを使用できます。コロケートするようにメッセージングサーバーを設定する際に覚えておくべき 2 つの重要なことがあります。
第 1 に、設定の各 server
要素には、独自の remote-connector
および remote-acceptor
、または http-connector
および http-acceptor
が必要です。たとえば、remote-acceptor
を使用するライブサーバーは、ポート 5445
でリッスンするよう設定できますが、コロケートされたバックアップからの remote-acceptor
はポート 5446
を使用します。ポートは、デフォルトの socket-binding-group
に追加する必要がある socket-binding
要素に定義します。http-acceptors
の場合、ライブおよびコロケートバックアップは、同じ http-listener
を共有できます。各 server
設定のクラスター関連の設定要素は、サーバーによって使用される remote-connector
または http-connector
を使用します。関連する設定が、後述の各例に含まれています。
第 2 に、ジャーナル関連のディレクトリーのパスを適切に設定する点に注意します。たとえば、共有ストアのコロケートトポロジーでは、ライブサーバーとそのバックアップの両方が、別のライブサーバーにコロケーションされ、バインディング と メッセージ ジャーナル用、大きいメッセージ 用、ページング 用にディレクトリーの場所を共有するように設定する必要があります。
30.6.1. コロケート HA トポロジーの手動作成の設定
以下の手順で使用する管理 CLI コマンドの例は、コロケートトポロジーを使用する単純な 2 ノードクラスターを設定する方法を示しています。この例では、2 ノードのコロケートクラスターを設定します。ライブサーバーとバックアップサーバーは各ノードに存在します。ノード 1 のコロケートバックアップは、ノード 2 のコロケートされたライブサーバーとペアになり、ノード 2 のバックアップサーバーはノード 1 のライブサーバーとペアになります。共有ストアとデータレプリケーション HA ポリシーの両方の例が含まれます。
以下の例は、full-ha
設定プロファイルを使用して JBoss EAP を実行していることを前提としています。
各インスタンスのデフォルトのサーバーを HA ポリシーを使用するように変更します。各ノードのデフォルトサーバーはライブサーバーになります。従う手順は、共有ストアポリシーまたはデータレプリケーションポリシーを設定したかどうかによって異なります。
共有ストアポリシーの説明: 以下の管理 CLI コマンドを使用して、推奨 HA ポリシーを追加します。
/subsystem=messaging-activemq/server=default/ha-policy=shared-store-master:add
データレプリケーションポリシーの説明: 各ノードのデフォルトサーバーは、一意の
group-name
を使用して設定する必要があります。以下の例では、1 番目のコマンドが ノード 1 で実行され、2 番目がノード 2 で実行されます。/subsystem=messaging-activemq/server=default/ha-policy=replication-master:add(cluster-name=my-cluster,group-name=group1,check-for-live-server=true) /subsystem=messaging-activemq/server=default/ha-policy=replication-master:add(cluster-name=my-cluster,group-name=group2,check-for-live-server=true)
新しいバックアップサーバーを各ライブサーバーとコロケートします。
JBoss EAP の各インスタンスに新しいサーバーを追加して、デフォルトのライブサーバーとコロケートします。新しいサーバーは、他のノードでデフォルトのサーバーをバックアップします。以下の管理 CLI コマンドを使用して、
backup
という名前の新しいサーバーを作成します。/subsystem=messaging-activemq/server=backup:add
次に、推奨 HA ポリシーを使用するように新しいサーバーを設定します。従う手順は、共有ストアポリシーまたはデータレプリケーションポリシーを設定したかどうかによって異なります。
共有ストアポリシーの説明: 以下の管理 CLI コマンドを使用して HA ポリシーを追加します。
/subsystem=messaging-activemq/server=backup/ha-policy=shared-store-slave:add
データレプリケーションポリシーの説明: 他のノード上のライブサーバーの
group-name
を使用するようにバックアップサーバーを設定します。以下の例では、1 番目のコマンドがノード 1 で実行され、2 番目のコマンドがノード 2 で実行されます。/subsystem=messaging-activemq/server=backup/ha-policy=replication-slave:add(cluster-name=my-cluster,group-name=group2) /subsystem=messaging-activemq/server=backup/ha-policy=replication-slave:add(cluster-name=my-cluster,group-name=group1)
すべてのサーバーに対してディレクトリーの場所を設定します。
サーバーが HA 用に設定されたら、バインディング ジャーナル、メッセージ ジャーナル、大きいメッセージ のディレクトリーの場所を設定する必要があります。ページングを使用する計画がある場合は、ページング のディレクトリーも設定する必要があります。従う手順は、共有ストアポリシーまたはデータレプリケーションポリシーを設定したかどうかによって異なります。
共有ストアポリシーの説明: ノード 1 のライブサーバーの
path
値は、ノード 2 のバックアップサーバーとしてサポート対象のファイルシステムと同じ場所を指す必要があります。ノード 2 のライブサーバーとノード 1 のバックアップでも同様です。以下の管理 CLI コマンドを使用して、ノード 1 のディレクトリーの場所を設定します。
/subsystem=messaging-activemq/server=default/path=bindings-directory:write-attribute(name=path,value=/PATH/TO/shared/bindings-A) /subsystem=messaging-activemq/server=default/path=journal-directory:write-attribute(name=path,value=/PATH/TO/shared/journal-A) /subsystem=messaging-activemq/server=default/path=large-messages-directory:write-attribute(name=path,value=/PATH/TO/shared/largemessages-A) /subsystem=messaging-activemq/server=default/path=paging-directory:write-attribute(name=path,value=/PATH/TO/shared/paging-A) /subsystem=messaging-activemq/server=backup/path=bindings-directory:write-attribute(name=path,value=/PATH/TO/shared/bindings-B) /subsystem=messaging-activemq/server=backup/path=journal-directory:write-attribute(name=path,value=/PATH/TO/shared/journal-B) /subsystem=messaging-activemq/server=backup/path=large-messages-directory:write-attribute(name=path,value=/PATH/TO/shared/largemessages-B) /subsystem=messaging-activemq/server=backup/path=paging-directory:write-attribute(name=path,value=/PATH/TO/shared/paging-B)
以下の管理 CLI コマンドを使用して、ノード 2 のディレクトリーの場所を設定します。
/subsystem=messaging-activemq/server=default/path=bindings-directory:write-attribute(name=path,value=/PATH/TO/shared/bindings-B) /subsystem=messaging-activemq/server=default/path=journal-directory:write-attribute(name=path,value=/PATH/TO/shared/journal-B) /subsystem=messaging-activemq/server=default/path=large-messages-directory:write-attribute(name=path,value=/PATH/TO/shared/largemessages-B) /subsystem=messaging-activemq/server=default/path=paging-directory:write-attribute(name=path,value=/PATH/TO/shared/paging-B) /subsystem=messaging-activemq/server=backup/path=bindings-directory:write-attribute(name=path,value=/PATH/TO/shared/bindings-A) /subsystem=messaging-activemq/server=backup/path=journal-directory:write-attribute(name=path,value=/PATH/TO/shared/journal-A) /subsystem=messaging-activemq/server=backup/path=large-messages-directory:write-attribute(name=path,value=/PATH/TO/shared/largemessages-A) /subsystem=messaging-activemq/server=backup/path=paging-directory:write-attribute(name=path,value=/PATH/TO/shared/paging-A)
データレプリケーションポリシーの説明: 各サーバーは独自のディレクトリーを使用し、他のサーバーとは共有しません。以下のコマンド例では、
path
の場所の各値は、ファイルシステム上の一意の場所であると仮定します。ライブサーバーでは、デフォルトの場所を使用するため、ディレクトリーの場所を変更する必要はありません。ただし、バックアップサーバーは、依然として一意の場所で設定する必要があります。以下の管理 CLI コマンドを使用して、ノード 1 のディレクトリーの場所を設定します。
/subsystem=messaging-activemq/server=backup/path=bindings-directory:write-attribute(name=path,value=activemq/bindings-B) /subsystem=messaging-activemq/server=backup/path=journal-directory:write-attribute(name=path,value=activemq/journal-B) /subsystem=messaging-activemq/server=backup/path=large-messages-directory:write-attribute(name=path,value=activemq/largemessages-B) /subsystem=messaging-activemq/server=backup/path=paging-directory:write-attribute(name=path,value=activemq/paging-B)
以下の管理 CLI コマンドを使用して、ノード 2 のディレクトリーの場所を設定します。
/subsystem=messaging-activemq/server=backup/path=bindings-directory:write-attribute(name=path,value=activemq/bindings-B) /subsystem=messaging-activemq/server=backup/path=journal-directory:write-attribute(name=path,value=activemq/journal-B) /subsystem=messaging-activemq/server=backup/path=large-messages-directory:write-attribute(name=path,value=activemq/largemessages-B) /subsystem=messaging-activemq/server=backup/path=paging-directory:write-attribute(name=path,value=activemq/paging-B)
新しいアクセプターおよびコネクターをバックアップサーバーに追加します。
各バックアップサーバーは、
http-connector
と、デフォルトのhttp-listener
を使用するhttp-acceptor
を使用して設定する必要があります。これにより、サーバーが HTTP ポート経由で通信を送受信できるようになります。以下の例は、http-acceptor
とhttp-connector
をバックアップサーバーに追加します。/subsystem=messaging-activemq/server=backup/http-acceptor=http-acceptor:add(http-listener=default) /subsystem=messaging-activemq/server=backup/http-connector=http-connector:add(endpoint=http-acceptor,socket-binding=http)
バックアップサーバーの
cluster-connection
を設定します。各メッセージングサーバーは、適切な通信に
cluster-connection
、broadcast-group
、およびdiscovery-group
が必要です。以下の管理 CLI コマンドを使用して、これらの要素を設定します。/subsystem=messaging-activemq/server=backup/broadcast-group=bg-group1:add(connectors=[http-connector],jgroups-cluster=activemq-cluster) /subsystem=messaging-activemq/server=backup/discovery-group=dg-group1:add(jgroups-cluster=activemq-cluster) /subsystem=messaging-activemq/server=backup/cluster-connection=my-cluster:add(connector-name=http-connector,cluster-connection-address=jms,discovery-group=dg-group1)
これで、コロケートサーバー設定が完了しました。