24.2.2. デフォルトの JGroups チャネルが TCP を使用するよう設定

デフォルトでは、クラスターノードは ee JGroups チャネルに設定された udp プロトコルスタックを使用して通信します。

<channels default="ee">
  <channel name="ee" stack="udp"/>
</channels>
<stacks>
  <stack name="udp">
    <transport type="UDP" socket-binding="jgroups-udp"/>
    <protocol type="PING"/>
    ...
  </stack>
  <stack name="tcp">
    <transport type="TCP" socket-binding="jgroups-tcp"/>
    <protocol type="MPING" socket-binding="jgroups-mping"/>
    ...
  </stack>
</stacks>

マルチキャストを使用した TCP の設定

一部のネットワークでは TCP のみを使用できます。以下の管理 CLI コマンドを使用して、ee チャネルが事前設定された tcp スタックを使用するようにします。

/subsystem=jgroups/channel=ee:write-attribute(name=stack,value=tcp)

このデフォルトの tcp スタックは、IP マルチキャストを使用して初期クラスターメンバーシップを検出する MPING プロトコルを使用します。

マルチキャストを使用しない TCP の設定

マルチキャストが好ましくない場合、またはセキュリティーポリシーで許可されていない場合は、TCP を使用するようにデフォルトのプロトコルスタックを変更できます。マルチキャストなしで TCP ベースのクラスターリングを設定するには、以下の手順を実行します。

  1. 以下のコマンドを実行して、ee チャネルが JGroups サブシステムで事前設定された tcp スタックを使用するように切り替えます。

    <channel name="ee" stack="tcp" cluster="ejb"/>
  2. クラスターノードの名前を設定します。

    • スタンドアロン設定モードでは、次のいずれかの手順を実行します。

      • 以下のコマンドを実行します。

        <server xmlns="urn:jboss:domain:8.0" name="node_1">
      • インスタンスの起動時にシステムプロパティー jboss.node.name に一意の名前を指定します。
    • ドメインモードでは、クラスターサーバーはサーバーのタグの host-*.xml ファイルに一覧表示されます。デフォルト設定では、以下のサーバー名を指定します。このサーバー名は、必要に応じて編集できます。

      <servers>
          <server name="server-one" group="main-server-group"/>
          <server name="server-two" group="other-server-group">
              <socket-bindings port-offset="150"/>
          </server>
      </servers>
  3. 他のクラスターメンバーを検出するには、以下のいずれかのプロトコルを選択します。

    • TCPGOSSIP: このプロトコルは、外部のゴシップルーターサービスを使用してクラスターのメンバーを検出します。これには、追加のプロセスの設定および管理が必要ですが、個々の EAP インスタンスが相互のクラスターメンバーを一覧表示しないようにすることができます。このプロトコルは、クラスターメンバーが頻繁に変更される場合に役立ちます。詳細は TCPPING を参照してください。
    • TCPPING: このプロトコルは静的クラスターメンバーシップリストを定義し、各ノードが潜在的なクラスターメンバーの一覧を表示する必要があります。このプロトコルは、クラスターメンバーアドレスが認識されており、頻繁に変更されない場合に推奨されます。詳細は、TCPGOSSIP を参照してください。