当我们登录时,会经过Nginx转发到Tomcat1上,此时Tomcat1上有我们的用户信息,过了一段时间我们可能会跳转到其他界面,这时分发到Tomcat2,而Tomcat2上没有用户信息,这就是分布式Session问题
解决方案:
1.Session复制
优点:无需修改代码,只需要修改Tomcat配置
缺点:
1.session同步传输占用内网带宽;
2.多台Tomcat同步性能指数级下降;
3.Session占用内存,无法有效水平扩展;
2.前端储存
优点:不占用服务端内存
缺点:
1.安全性低
2.数据的大小受cookie限制
3.占用外网带宽
3.session粘滞
优点:
1、无需修改代码;
2、服务端可以水平扩展;
缺点:
1.需要增加新机器,会重新Hash,导致重新登录;
2.应用重启,需要重新登录
4.后端集中储存(利用redis)
优点:安全、容易水平扩展
缺点:增加复杂度、需要修改代码