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 を実行していることを前提としています。

  1. 各インスタンスのデフォルトのサーバーを 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)
  2. 新しいバックアップサーバーを各ライブサーバーとコロケートします。

    1. JBoss EAP の各インスタンスに新しいサーバーを追加して、デフォルトのライブサーバーとコロケートします。新しいサーバーは、他のノードでデフォルトのサーバーをバックアップします。以下の管理 CLI コマンドを使用して、backup という名前の新しいサーバーを作成します。

      /subsystem=messaging-activemq/server=backup:add
    2. 次に、推奨 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)
  3. すべてのサーバーに対してディレクトリーの場所を設定します。

    サーバーが HA 用に設定されたら、バインディング ジャーナル、メッセージ ジャーナル、大きいメッセージ のディレクトリーの場所を設定する必要があります。ページングを使用する計画がある場合は、ページング のディレクトリーも設定する必要があります。従う手順は、共有ストアポリシーまたはデータレプリケーションポリシーを設定したかどうかによって異なります。

    • 共有ストアポリシーの説明: ノード 1 のライブサーバーの path 値は、ノード 2 のバックアップサーバーとしてサポート対象のファイルシステムと同じ場所を指す必要があります。ノード 2 のライブサーバーとノード 1 のバックアップでも同様です。

      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)
      2. 以下の管理 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 の場所の各値は、ファイルシステム上の一意の場所であると仮定します。ライブサーバーでは、デフォルトの場所を使用するため、ディレクトリーの場所を変更する必要はありません。ただし、バックアップサーバーは、依然として一意の場所で設定する必要があります。

      1. 以下の管理 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)
      2. 以下の管理 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)
  4. 新しいアクセプターおよびコネクターをバックアップサーバーに追加します。

    各バックアップサーバーは、http-connector と、デフォルトの http-listener を使用する http-acceptor を使用して設定する必要があります。これにより、サーバーが HTTP ポート経由で通信を送受信できるようになります。以下の例は、http-acceptorhttp-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)
  5. バックアップサーバーの cluster-connection を設定します。

    各メッセージングサーバーは、適切な通信に cluster-connectionbroadcast-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)

これで、コロケートサーバー設定が完了しました。