tomcat 后端服务器实现 session id会话保持
基础架构:

7-6 代理服务器nginx配置




7-3 tomcat 服务器

7-5 同理
测试:


此时刷新,会话id一直在变,这样不好

如何解决呢?


不好的是确定ip之后,会一直在一台机上,不调度了
但是这样不调度又不好了
我们在tomcat添加以下配置,实现sessionid不变,却依旧可以调度
官网文档:apache tomcat 9 (9.0.87) - clustering/session replication how-to
<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="4000"
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.messagedispatchinterceptor"/>
</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.clustersessionlistener"/>
</cluster>7-3


再改一处


也是在官方文档里面

7-5


测试:


ip地址在变,但此时的sessionid不变
到此这篇关于tomcat 实现会话绑定的方法步骤的文章就介绍到这了,更多相关tomcat 会话绑定内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论