官方文档:https://tomcat.apache.org/tomcat-8.5-doc/cluster-howto.html
配置说明配置说明
Cluster 集群配置
Manager 会话管理器配置
Channel 信道配置
Membership 成员判定。使用什么多播地址、端口多少、间隔时长ms、超时时长ms。同一个多播地址和端口认为同属一个组。使用时修改这个多播地址,以防冲突
Receiver 接收器,多线程接收多个其他节点的心跳、会话信息。默认会从4000到4100依次尝试可用端口
address="auto",auto可能绑定到127.0.0.1上,所以一定要改为可以用的IP上去
Sender 多线程发送器,内部使用了tcp连接池。
Interceptor 拦截器
Valve
ReplicationValve 检测哪些请求需要检测Session,Session数据是否有了变化,需要启动复制过程
ClusterListener
ClusterSessionListener 集群session侦听器
使用
添加到
添加到
最后,在应用程序内部启用了才可以使用
配置实现前提:
时间同步,确保NTP或Chrony服务正常运行。
防火墙规则。
本次把多播复制的配置放到缺省虚拟主机里面, 即Host之下。
特别注意修改Receiver的address属性为一个本机可对外的IP地址。
t2的server.xml中,如下
其他略去
t3的server.xml中,如下
其他略去
Tomcat重启后,ss命令能看到tomcat监听在4000端口上
尝试使用刚才配置过得负载均衡(移除Session黏性),测试发现Session还是变来变去。
准备web.xml
在应用中增加WEB-INF,从全局复制一个web.xml过来
# cp /usr/local/tomcat/conf/web.xml /data/webapps/ROOT/WEB-INF/
为web.xml的
重启全部Tomcat,通过负载均衡调度到不同节点,返回的SessionID不变了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)