24.2.3. TCPPING の設定
この手順は TCPPING
プロトコルを使用する新しい JGroups スタックを作成し、静的クラスターメンバーシップのリストを定義します。ベーススクリプトは、tcpping
スタックを作成し、この新しいスタックを使用するようデフォルトの ee
チャネルを設定します。このスクリプトの管理 CLI コマンドは環境に合わせてカスタマイズする必要があり、バッチで処理されます。
以下のスクリプトをテキストエディターにコピーし、ローカルファイルシステムに保存します。
# Define the socket bindings /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=jgroups-host-a:add(host=HOST_A,port=7600) /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=jgroups-host-b:add(host=HOST_B,port=7600) batch # Add the tcpping stack /subsystem=jgroups/stack=tcpping:add /subsystem=jgroups/stack=tcpping/transport=TCP:add(socket-binding=jgroups-tcp) /subsystem=jgroups/stack=tcpping/protocol=TCPPING:add(socket-bindings=[jgroups-host-a,jgroups-host-b]) /subsystem=jgroups/stack=tcpping/protocol=MERGE3:add /subsystem=jgroups/stack=tcpping/protocol=FD_SOCK:add /subsystem=jgroups/stack=tcpping/protocol=FD_ALL:add /subsystem=jgroups/stack=tcpping/protocol=VERIFY_SUSPECT:add /subsystem=jgroups/stack=tcpping/protocol=pbcast.NAKACK2:add /subsystem=jgroups/stack=tcpping/protocol=UNICAST3:add /subsystem=jgroups/stack=tcpping/protocol=pbcast.STABLE:add /subsystem=jgroups/stack=tcpping/protocol=pbcast.GMS:add /subsystem=jgroups/stack=tcpping/protocol=MFC:add /subsystem=jgroups/stack=tcpping/protocol=FRAG3:add # Set tcpping as the stack for the ee channel /subsystem=jgroups/channel=ee:write-attribute(name=stack,value=tcpping) run-batch reload
定義されたプロトコルの順番が重要になることに注意してください。また、
add-index
の値をadd
コマンドに渡すと、特定のインデックスでプロトコルを挿入できます。インデックスはゼロベースであるため、以下の管理 CLI コマンドはUNICAST3
プロトコルを 7 つ目のプロトコルとして追加します。/subsystem=jgroups/stack=tcpping/protocol=UNICAST3:add(add-index=6)
環境に合わせてスクリプトを変更します。
-
管理対象ドメインで実行している場合は、
/subsystem=jgroups
コマンドの前に/profile=PROFILE_NAME
を追加し、更新するプロファイルを指定する必要があります。 以下のプロパティーを環境に合わせて調整します。
-
socket-bindings
: ウェルノウンとして見なされ、最初のメンバーシップの検索に利用できるホストとポートの組み合わせのコンマ区切りリスト。ソケットバインディングの定義に関する詳細は、ソケットバインディングの設定 を参照してください -
initial_hosts
: ウェルノウンとして見なされ、最初のメンバーシップの検索に使用できるHOST[PORT]
という構文を使用したホストとポートの組み合わせのコンマ区切りリスト (例:host1[1000],host2[2000]
)。 -
port_range
: このプロパティーは、initial_hosts
ポート範囲を指定した値の分拡張するために使用されます。たとえば、initial_hosts
をhost1[1000],host2[2000]
に設定し、port_range
を1
に設定した場合initial_hosts
設定はhost1[1000],host1[1001],host2[2000],host2[2001]
に拡張されます。このプロパティーはinitial_hosts
プロパティーと併用した場合のみ有効です。
-
-
管理対象ドメインで実行している場合は、
スクリプトファイルを管理 CLI に渡してスクリプトを実行します。
$ EAP_HOME/bin/jboss-cli.sh --connect --file=/path/to/SCRIPT_NAME
TCPPING スタックが使用できるようになり、ネットワークの通信に TCP が使用されます。
24.2.3.1. スタンドアロンモードでの TCPPING の設定
この手順では、スタンドアロンモードでクラスター化されたアプリケーションの TCP スタックおよびノードを設定するのに役立ちます。
手順
JGroups サブシステムで、デフォルトのスタックを
udp
からtcp
に変更します。<channel name="ee" stack="tcp" cluster="ejb"/>
デフォルトの MPING プロトコルの代わりに TCPPING プロトコルを使用するように TCP スタックを設定します。以下のコードでは、
initial_hosts
プロパティーはクラスター内の全ノードのリストに相関し、7600
は設定および環境に応じて異なるデフォルトのjgroups-tcp
ポートを示します。<stack name="tcp"> <transport type="TCP" socket-binding="jgroups-tcp"/> <protocol type="TCPPING"> <property name="initial_hosts">192.168.1.5[7600],192.168.1.9[7600]</property> <property name="port_range">0</property> </protocol> <protocol type="MERGE3"/> <protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/> <protocol type="FD_ALL"/> <protocol type="VERIFY_SUSPECT"/> <protocol type="pbcast.NAKACK2"/> <protocol type="UNICAST3"/> <protocol type="pbcast.STABLE"/> <protocol type="pbcast.GMS"/> <protocol type="MFC"/> <protocol type="FRAG3"/> </stack>
注記initial_hosts
に設定されたポート番号7600
は、jgroups-tcp
ソケットバインディング定義で定義されたポート番号と同じでなければなりません。ソケットバインディングに port-offset 機能を使用する場合は、initial_hosts
のオフセットの後に同じ値を指定する必要があります。JGroups コンポーネントによって使用されるプライベートインターフェイスの IP アドレスを設定します。IP アドレスは、
initial_hosts
で指定されている IP アドレスのいずれかに関連付ける必要があります。<interface name="private"> <inet-address value="${jboss.bind.address.private:192.168.1.5}"/> </interface>
- クラスター内の他のノードを設定するには、上記の手順を繰り返します。ノードが設定されたら、各ノードを起動して、クラスター化されたアプリケーションをデプロイします。
検証
ログを確認して、ノードが稼働しているかどうかを確認できます。
INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-2,ee,node_1) ISPN000094: Received new cluster view for channel server: [node_1|1] (2) [node_1, node_2] INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-2,ee,node_1) ISPN000094: Received new cluster view for channel web: [node_1|1] (2) [node_1, node_2]