3.6. 在 mod_cluster中配置 Tomcat worker 节点
使用 mod_cluster 时,您可以将 Tomcat worker 节点配置为只以非集群模式运行的 JBoss Web Server Tomcat 服务。在这种情况下,在计算负载平衡因时,一次只能使用一个负载指标。
JBoss Web Server Tomcat worker 节点只支持 mod_cluster 功能的子集。JBoss EAP 提供了完整 mod_cluster 功能。
流程
要为 Tomcat 添加监听程序,请在
JWS_HOME/tomcat <VERSION> /conf/server.xml文件中的其他Listener元素下添加以下Listener元素:<Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="true" stickySession="true" stickySessionForce="false" stickySessionRemove="true" />
<Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="true" stickySession="true" stickySessionForce="false" stickySessionRemove="true" />Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要为 worker 节点指定唯一身份,请编辑
JWS_HOME/tomcat <VERSION> /conf/server.xml文件,将jvmRoute属性和值添加到Engine元素中:<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker01">
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker01">Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要配置
STATUS MCMP消息频率,请修改org.jboss.modcluster.container.catalina.status-frequencyJava 系统属性。例如:
-Dorg.jboss.modcluster.container.catalina.status-frequency=6
-Dorg.jboss.modcluster.container.catalina.status-frequency=6Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意Tomcat worker 节点会定期将包含其当前负载状态的状态信息发送到 Apache HTTP 服务器负载均衡器。这些消息的默认频率是 10 秒。如果您有数百个 worker 节点,则
STATUS MCMP信息可能会增加 Apache HTTP 服务器网络上的流量拥塞。您可以通过修改
org.jboss.modcluster.container.catalina.status-frequencyJava 系统属性来配置MCMP消息频率。默认情况下,属性接受以十秒为单位指定的值。例如,将 属性设置为1表示 10 秒。在前面的示例中,属性设为6,即 60 秒。可选:要为代理服务器公告配置防火墙,请完成以下步骤之一,在 worker 节点的防火墙中为 UDP 连接打开端口
23364:Red Hat Enterprise Linux 7:
firewall-cmd --permanent --zone=public --add-port=23364/udp
firewall-cmd --permanent --zone=public --add-port=23364/udpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于使用 PowerShell 的 Microsoft Windows
Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "NetSh Advfirewall firewall add rule name="UDP Port 23364" dir=in action=allow protocol=UDP localport=23364"' Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "NetSh Advfirewall firewall add rule name="UDP Port 23364" dir=out action=allow protocol=UDP localport=23364"'
Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "NetSh Advfirewall firewall add rule name="UDP Port 23364" dir=in action=allow protocol=UDP localport=23364"' Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "NetSh Advfirewall firewall add rule name="UDP Port 23364" dir=out action=allow protocol=UDP localport=23364"'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意当代理服务器使用
mod_cluster时,代理服务器可以使用 UDP 多播来公告自身。大多数操作系统防火墙默认阻止服务器广告功能。要启用服务器公告并接收这些多播信息,您可以在 worker 节点的防火墙上打开 UDP 连接的端口23364,如上例中所示。
Red Hat Enterprise Linux 6 不再被支持,随后从文档中被删除。