3.2.8. クラスタリングの変更
3.2.8.1. クラスタリングに対するアプリケーションの変更
クラスタリングが有効な状態で JBoss EAP 6 を起動する
JBoss EAP 5.x でクラスタリングを有効にするには、次のようにallプロファイル (またはその派生プロファイル) を使用してサーバーインスタンスを起動する必要がありました。$ EAP5_HOME/bin/run.sh -c allJBoss EAP 6 でクラスタリングを有効にする方法は、サーバーがスタンドアロンであるかまたは管理ドメインで実行されているかによって異なります。管理対象ドメインで実行されているサーバーに対してクラスタリングを有効にする
ドメインコントローラーを使用して起動したサーバーに対してクラスタリングを有効にするには、domain.xmlを更新し、haプロファイルとha-socketsソケットバインディンググループを使用するサーバーグループを指定します。例は次のとおりです。<server-groups> <server-group name="main-server-group" profile="ha"> <jvm name="default"> <heap size="64m" max-size="512m"/> </jvm> <socket-binding-group ref="ha-sockets"/> </server-group> </server-group>スタンドアロンサーバーに対してクラスタリングを有効にします。
スタンドアロンサーバーに対してクラスタリングを有効にするには、次のように適切な設定ファイルを使用してサーバーを起動します。$ EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAME
バインドアドレスを指定する
通常、JBoss EAP 5.x では、以下のように-bコマンドライン引数を用いて、クラスタリングに使用するバインドアドレスを指定しました。$ EAP5_HOME/bin/run.sh -c all -b 192.168.0.2JBoss EAP 6 は、standalone.xml、domain.xml、およびhost.xmlファイルの<interfaces>要素に含まれる IP アドレスおよびインターフェースへソケットをバインドします。JBoss EAP に同梱される標準的な設定には、2 つのインターフェース設定が含まれています。<interfaces> <interface name="management"> <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> </interface> <interface name="public"> <inet-address value="${jboss.bind.address:127.0.0.1}"/> </interface> </interfaces>これらのインターフェース設定は、jboss.bind.address.managementおよびjboss.bind.addressシステムプロパティーの値を使用します。これらのシステムプロパティーが設定されていないと、デフォルトの127.0.0.1が各値に使用されます。また、サーバーの起動時にバインドアドレスをコマンドライン引数として指定でき、JBoss EAP 6 サーバー設定ファイル内に明示的に定義することも可能です。- JBoss EAP スタンドアロンサーバーの起動時に、コマンドラインでバインド引数を指定します。以下の例は、スタンドアロンサーバーでコマンドラインにバインドアドレスを指定する方法を示しています。
EAP_HOME/bin/standalone.sh -Djboss.bind.address=127.0.0.1注記
また、-Djboss.bind.address=127.0.0.1のショートカットである-b引数を使用することもできます。EAP_HOME/bin/standalone.sh -b=127.0.0.1JBoss EAP 5 の構文形式もサポートされます。EAP_HOME/bin/standalone.sh -b 127.0.0.1-b引数はpublicインターフェースのみを変更することに注意してください。managementインターフェースは対象になりません。 - サーバー設定ファイルにバインドアドレスを指定します。管理対象ドメインで稼働しているサーバーの場合は、
domain/configuration/host.xmlファイルでバインドアドレスを指定します。スタンドアロンサーバーの場合は、standalone-ha.xmlファイルでバインドアドレスを指定します。以下の例では、ha-socketsソケットバインディンググループ内のすべてのソケットに対するデフォルトインターフェースとしてpublicインターフェースが指定されています。<interfaces> <interface name="management"> <inet-address value="192.168.0.2"/> </interface> <interface name="public"> <inet-address value="192.168.0.2"/> </interface> </interfaces><socket-binding-groups> <socket-binding-group name="ha-sockets" default-interface="public"> <!-- ... --> </socket-binding-group> </socket-binding-groups>注記
バインドアドレスを設定ファイルのシステムプロパティーとしてではなく、ハードコードされた値として指定する場合は、コマンドライン引数でオーバーライドできません。
jvmRouteが mod_jk と mod_proxy をサポートするよう設定するJBoss EAP 5 では、Web サーバーjvmRouteはserver.xmlファイルのプロパティーを使用して設定されていました。JBoss EAP 6 では、jvmRoute属性は、以下のようにinstance-id属性を使用してサーバー設定ファイルの Web サブシステムで設定されます。<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false" instance-id="{JVM_ROUTE_SERVER}">上記の {JVM_ROUTE_SERVER} は、jvmRoute サーバー ID で置き換える必要があります。instance-idは、管理コンソールを使用して設定することもできます。マルチキャストアドレスおよびポートを指定する
JBoss EAP 5.x では、 以下のようにコマンドライン引数-uを使用して、クラスター内の通信に使用されるマルチキャストアドレスを指定できました。 同様に、引数-mを使用してクラスター内の通信に使用されるポートを指定できました。$ EAP5_HOME/bin/run.sh -c all -u 228.11.11.11 -m 45688JBoss EAP 6 では、クラスター内の通信に使用されるマルチキャストアドレスとポートは、以下のように該当する JGroups プロトコルにより参照されたソケットバインディングにより定義されます。<subsystem xmlns="urn:jboss:domain:jgroups:1.0" default-stack="udp"> <stack name="udp"> <transport type="UDP" socket-binding="jgroups-udp"/> <!-- ... --> </stack> </subsystem><socket-binding-groups> <socket-binding-group name="ha-sockets" default-interface="public"> <!-- ... --> <socket-binding name="jgroups-udp" port="55200" multicast-address="228.11.11.11" multicast-port="45688"/> <!-- ... --> </socket-binding-group> </socket-binding-groups>コマンドラインでマルチキャストアドレスおよびポートを指定する場合は、マルチキャストアドレスとポートをシステムプロパティーとして定義し、サーバーを起動するときにこれらのプロパティーをコマンドラインで使用できます。以下の例では、jboss.mcast.addrは、マルチキャストアドレスの変数名であり、jboss.mcast.portはポートの変数名です。<socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.mcast.addr:230.0.0.4}" multicast-port="${jboss.mcast.port:45688}"/>次のコマンドライン引数を使用してサーバーを起動できます。$ EAP_HOME/bin/domain.sh -Djboss.mcast.addr=228.11.11.11 -Djboss.mcast.port=45688代替のプロトコルスタックを使用する
JBoss EAP 5.x では、jboss.default.jgroups.stackシステムプロパティーを使用してすべてのクラスタリングサービスに使用されるデフォルトのプロトコルスタックを操作できました。$ EAP5_HOME/bin/run.sh -c all -Djboss.default.jgroups.stack=tcpJBoss EAP 6 では、domain.xmlまたはstandalone-ha.xml内の JGroups サブシステムによってデフォルトのプロトコルスタックが定義されます。<subsystem xmlns="urn:jboss:domain:jgroups:1.0" default-stack="udp"> <stack name="udp"> <!-- ... --> </stack> </subsystem>バディーレプリケーション
JBoss EAP 5.x は JBoss Cache のバディーレプリケーションを使用して、クラスターのすべてのインスタンスへのデータレプリケーションを抑制しました。JBoss EAP 6 ではバディーレプリケーションは、Infinispan の分散キャッシュであるDISTモードに置き換えられました。DIST (分散) モードは強力なクラスタリングモードで、サーバーがクラスターに追加されると Infinispan によって線形にスケールします。サーバーが DIST キャッシングモードを使用するよう設定する方法の例は次のとおりです。- コマンドラインを開き、次のように HA または Full プロファイルのいずれかでサーバーを起動します。
EAP_HOME/bin/standalone.sh -c standalone-ha.xml
- 別のコマンドラインを開き、管理 CLI へ接続します。
- Linux の場合は、コマンドラインで以下を入力します。
$ EAP_HOME/bin/jboss-cli.sh --connect
- Windows の場合は、コマンドラインで以下を入力します。
C:\>EAP_HOME\bin\jboss-cli.bat --connect
次の応答が表示されるはずです。Connected to standalone controller at localhost:9999
- 以下のコマンドを実行します。
/subsystem=infinispan/cache-container=web/:write-attribute(name=default-cache,value=dist) /subsystem=infinispan/cache-container=web/distributed-cache=dist/:write-attribute(name=owners,value=3) :reload
各コマンドの後に、以下の応答が表示されるはずです。"outcome" => "success"
これらのコマンドは、次のようにstandalone-ha.xmlファイルのinfinispanサブシステムにあるweb<cache-container>設定のdist<distributed-cache>要素を変更します。<cache-container name="web" aliases="standard-session-cache" default-cache="dist" module="org.jboss.as.clustering.web.infinispan"> <transport lock-timeout="60000"/> <replicated-cache name="repl" mode="ASYNC" batching="true"> <file-store/> </replicated-cache> <replicated-cache name="sso" mode="SYNC" batching="true"/> <distributed-cache name="dist" owners="3" l1-lifespan="0" mode="ASYNC" batching="true"> <file-store/> </distributed-cache> </cache-container>詳細は、https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/ にある JBoss EAP 6 向け『開発ガイド』の章「Web アプリケーションのクラスター化」を参照してください。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.