3.6. 在 mod_cluster中配置 Tomcat worker 节点
使用 mod_cluster
时,您可以将 Tomcat worker 节点配置为仅以非集群模式运行的 Apache HTTP Server Tomcat 服务。在这种情况下,在计算负载均衡因时,一次只能使用一个负载指标。
Apache HTTP 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" />
要为 worker 节点指定唯一身份,请编辑
JWS_HOME/tomcat <VERSION> /conf/server.xml
文件,将jvmRoute
属性和值添加到Engine
元素中:<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker01">
要配置
STATUS MCMP
消息频率,请修改org.jboss.modcluster.container.catalina.status-frequency
Java 系统属性。例如:
-Dorg.jboss.modcluster.container.catalina.status-frequency=6
注意Tomcat worker 节点会定期将包含其当前负载状态的状态信息发送到 Apache HTTP 服务器负载均衡器。这些消息的默认频率为 10 秒。如果您有数百个 worker 节点,
STATUS MCMP
消息可能会增加 Apache HTTP 服务器网络上的流量拥塞。您可以通过修改
org.jboss.modcluster.container.catalina.status-frequency
Java 系统属性来配置MCMP
消息频率。默认情况下,属性接受以十秒为单位指定的值。例如,将 属性设为1
表示 10 秒。在前面的示例中,属性设为6
,即 60 秒。可选: 要为代理服务器公告配置防火墙,请完成以下步骤在 worker 节点的防火墙中为 UDP 连接打开端口
23364
:Red Hat Enterprise Linux 7:
firewall-cmd --permanent --zone=public --add-port=23364/udp
对于使用 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"'
注意当代理服务器使用
mod_cluster
时,代理服务器可以使用 UDP 多播来公告自身。大多数操作系统防火墙默认阻止服务器广告功能。要启用服务器公告并接收这些多播信息,您可以在 worker 节点的防火墙上打开 UDP 连接的端口23364
,如上例中所示。
Red Hat Enterprise Linux 6 不再被支持,并随后从文档中被删除。