3.2.8. 群集的修改
3.2.8.1. 修改应用程序以用于群集环境
复制链接链接已复制到粘贴板!
- 启动启用了群集的 JBoss EAP 6 要在 JBoss EAP 5.x 里启用群集,您需要使用- all配置集或其衍生配置集来启动服务器实例,如:- EAP5_HOME/bin/run.sh -c all - $ EAP5_HOME/bin/run.sh -c all- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 在 JBoss EAP 6 里,启用群集的方法取决于服务器是独立的还是运行在受管域里。- 为运行在受管域l里的服务器启用群集 要为使用域控制器启动的服务器的群集,请更新您的- domain.xml并指定一个服务器组来使用- ha配置集和- ha-sockets套接字绑定组。例如:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 为独立服务器启用群集 要为独立服务器启用群集,用下列配置文件启动服务器:- EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAME - $ EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAME- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 指定绑定地址 在 JBoss EAP 5.x 里,您通常要用- -b命令行参数来指定用于群集的绑定地址:- EAP5_HOME/bin/run.sh -c all -b 192.168.0.2 - $ EAP5_HOME/bin/run.sh -c all -b 192.168.0.2- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow JBoss EAP 6 绑定套接字到- standalone.xml、- domain.xml和- host.xml文件里- <interfaces>元素的 IP 地址和接口。JBoss EAP 6 附带的标准配置包含两个接口配置:这些接口配置使用了系统属性- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 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 EAP_HOME/bin/standalone.sh -Djboss.bind.address=127.0.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意 您也可以使用-b参数,它是-Djboss.bind.address=127.0.0.1的快捷方式。EAP_HOME/bin/standalone.sh -b=127.0.0.1 EAP_HOME/bin/standalone.sh -b=127.0.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow JBoss EAP 5 的语法格式仍被支持:请注意EAP_HOME/bin/standalone.sh -b 127.0.0.1 EAP_HOME/bin/standalone.sh -b 127.0.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow -b参数只会修改public接口。它不会影响management接口。
- 在服务器配置文件里指定绑定地址。对于运行在受管域里的服务器,请在domain/configuration/host.xml文件里指定绑定地址。对于独立服务器,请在standalone-ha.xml文件里指定绑定地址。在下面的例子里,public接口被指定为ha-sockets套接字绑定组里的所有套接字的默认接口。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意 如果您用硬编码值而不是配置文件里的系统属性来指定绑定地址,那您无法用命令行参数来覆盖它。
 
- 配置 - jvmRoute以支持 mod_jk 和 mod_proxy在 JBoss EAP 5 里,web 服务器- jvmRoute是用- server.xml文件里的一个属性进行配置的。在 JBoss EAP 6 里,- jvmRoute属性使用- instance-id属性在服务器配置文件的 web subsystem 部分进行配置。上面的 {JVM_ROUTE_SERVER} 应该用 jvmRoute 服务器 ID 替换。- <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false" instance-id="{JVM_ROUTE_SERVER}">- <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false" instance-id="{JVM_ROUTE_SERVER}">- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - instance-id也可以用管理控制台来设置。
- 指定多点传送地址和端口 在 JBoss EAP 5.x 里,您可以使用命令行参数- -u和- -m分别指定用于群集间通讯的多点传送地址和端口,如:- EAP5_HOME/bin/run.sh -c all -u 228.11.11.11 -m 45688 - $ EAP5_HOME/bin/run.sh -c all -u 228.11.11.11 -m 45688- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 在 JBoss EAP 6 里,用于群集间通讯的多点传送地址和端口是用相关的 JGroups 协议栈引用的 socket-binding 定义的。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 如果您想在命令行指定多点传送地址和端口,您可以将多点传送地址和端口定义为系统属性并在启动服务器时在命令行使用这些属性。在下面的例子里,- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 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}"/>- <socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.mcast.addr:230.0.0.4}" multicast-port="${jboss.mcast.port:45688}"/>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - EAP_HOME/bin/domain.sh -Djboss.mcast.addr=228.11.11.11 -Djboss.mcast.port=45688 - $ EAP_HOME/bin/domain.sh -Djboss.mcast.addr=228.11.11.11 -Djboss.mcast.port=45688- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用其他的协议栈 在 JBoss EAP 5.x 里,您可以使用- jboss.default.jgroups.stack系统属性来操纵用于群集服务的默认协议栈。- EAP5_HOME/bin/run.sh -c all -Djboss.default.jgroups.stack=tcp - $ EAP5_HOME/bin/run.sh -c all -Djboss.default.jgroups.stack=tcp- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 在 JBoss EAP 6 里,默认的协议栈是由- domain.xml或- standalone-ha.xml里的 JGroups 子系统定义的:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 替换 Buddy Replication JBoss EAP 5.x 使用 JBoss Cache Buddy Replication 来抑制将数据复制到群集里的所有实例。在 JBoss EAP 6 里,Buddy Replication 已被 Infinispan 的分布式缓存(也称为- DIST模式)所替代。Distribution 是一个强大的群集模式,它允许 Infinispan 在添加更多服务器到群集里时进行线性扩充。下面是配置服务器使用 DIST 缓存模式的例子。- 打开命令行窗口并用 HA 或 Full 配置集启动服务器,例如:EAP_HOME/bin/standalone.sh -c standalone-ha.xml EAP_HOME/bin/standalone.sh -c standalone-ha.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
- 打开另外一个命令行窗口并连接至管理 CLI。- 对于 Linux,输入下列命令:EAP_HOME/bin/jboss-cli.sh --connect $ EAP_HOME/bin/jboss-cli.sh --connectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
- 对于 Windows,输入下列命令:C:\>EAP_HOME\bin\jboss-cli.bat --connect C:\>EAP_HOME\bin\jboss-cli.bat --connectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
 您应该看到下面的结果:Connected to standalone controller at localhost:9999 Connected to standalone controller at localhost:9999Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
- 运行下列命令:/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 /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) :reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您应该在每条命令后看到下面的结果:"outcome" => "success" "outcome" => "success"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这些命令修改了standalone-ha.xml文件的infinispan子系统的web<cache-container>配置里的dist<distributed-cache>元素:更多的信息请参考客户门户 https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/ 上的《JBoss EAP 6 开发指南》里的『Web 应用程序里的群集』章节。Copy to Clipboard Copied! Toggle word wrap Toggle overflow