0

负载均衡器中有 4 台服务器,并且正在使用 Tomcat 5.5。在设置 Tomcat 集群时已经涵盖了以下几点,但会话复制仍然没有正确发生。

  1. 会话属性已实现java.io.Serializable
  2. 取消注释Cluster元素,Valve(ReplicationValve)server.xml 中的元素
  3. Web.xml<distributable/>元素
  4. <Engine name="Catalina" jvmRoute="node01"> 在所有四个服务器中设置为唯一值。
  5. Loadbalancer配置为粘性会话模式。

    <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
             managerClassName="org.apache.catalina.cluster.session.DeltaManager"
             expireSessionsOnShutdown="false"
             useDirtyFlag="true"
             notifyListenersOnReplication="true">
    
        <Membership 
            className="org.apache.catalina.cluster.mcast.McastService"
            mcastAddr="228.0.0.4"
            mcastPort="45564"
            mcastFrequency="500"
            mcastDropTime="3000"/>
    
        <Receiver 
            className="org.apache.catalina.cluster.tcp.ReplicationListener"
            tcpListenAddress="auto"
            tcpListenPort="4001"
            tcpSelectorTimeout="100"
            tcpThreadCount="6"/>
    
        <Sender
            className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
            replicationMode="pooled"
            ackTimeout="15000"/>
    
        <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
               filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
    
        <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
                  tempDir="/tmp/war-temp/"
                  deployDir="/tmp/war-deploy/"
                  watchDir="/tmp/war-listen/"
                  watchEnabled="false"/>
    </Cluster>
    
4

0 回答 0