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 功能。

流程

  1. 要为 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" />
  2. 要为 worker 节点指定唯一身份,请编辑 JWS_HOME/tomcat &lt;VERSION&gt; /conf/server.xml 文件,将 jvmRoute 属性和值添加到 Engine 元素中:

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker01">
  3. 要配置 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 秒。

  4. 可选: 要为代理服务器公告配置防火墙,请完成以下步骤在 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 不再被支持,并随后从文档中被删除。