我设置了两个节点(两个独立的tomcats中的应用程序实例),会话复制配置(也使用粘性会话).Below是来自server.xml的集群配置,它位于引擎标记内。它在两个节点上都是相似的,除了端口号:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4050"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>\
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>从tomcat中,我可以看到会话(Ex: D042A0C5E380EB9E500224C87233119C.myNode1)是在登录时在主节点中创建的,并在备份中正确复制。
但是,一旦主节点关闭,我希望备份节点中的sessionId将使用当前节点名(即: D042A0C5E380EB9E500224C87233119C.myNode2 )进行更新。
例子:
当用户登录时
Node 1 - Primary - jsessionIdSample.node1
Node 2 - Backup - jsessionIdSample.node1 当一个节点1下降时
Node 1 - - jsessionIdSample.node1 (NODE GOES DOWN)
Node 2 - Primary - jsessionIdSample.node2 Node 1 - - jsessionIdSample.node1 (NODE DOWN)
Node 2 - Backup - jsessionIdSample.node11)我的理解是,sessionID应该在主节点下降后不久在备份中更新,对吗?我读了猫的文档,似乎应该看。
2)如果应该的话,你能帮我做一下配置吗?
我试过从其他问题中找到解决办法,但似乎都没有效果。
提前感谢!
发布于 2017-04-26 19:16:25
1)我的理解是,sessionID应该在主节点下降后不久在备份中更新,对吗?我读了猫的文档,似乎应该看。
答:不,当初选下降时,它就会下降。没有时间让它发布任何东西到备份节点“我要捣毁”。Tomcat文档在这里说,它将复制会话跨节点集群。对于提到更新的部分,它意味着它将跨所有节点进行更新(而不是已经崩溃的节点)。
2)如果应该的话,你能帮我做一下配置吗?
答:无
https://serverfault.com/questions/807712
复制相似问题