session共享
方案1:nginx的ip_hash策略
使用nginx,在nginx.conf中配置负载均衡策略将默认的轮询改为ip_hash。
upstream testService{
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
ip_hash原理是每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器。
这只是折中的方案,如果正式环境中,如果tomcat的8001挂掉了,那么之前一直访问8001端口的session都丢失了。
方案2:服务器的session复制
利用tomcat集群组播方式进行会话复制,如果想了解的话访问https://blog.csdn.net/mrleeapple/article/details/80420256,这个帖子写的已经很详细了。
方案3:把session放到第三方容器中管理,比如redis、mysql等。
推荐这种方案,spring-session已经封装好了,我们直接用就好了。
推荐一篇spring-session教学帖子:https://blog.csdn.net/qq_43371556/article/details/100862785