如何保证Session一致性?
一、方案
- Session同步法
多台web-server互相同步数据,缺点是水平扩展受限,因为每台web-server都是存储所有的session - 客户端存储法
session存储到浏览器cookie中,每个客户端只要存储一个用户的数据了。缺点是占用外网带宽、大小受限(因为cookie有大小限制) - 反向代理hash一致性
四层Hash和七层Hash都可以做,保证一个用户的请求落在一台web-server上,缺点是不能保证高可用,如果一台web-server down机了,上线的session信息都会丢失,用户需要重新登录,不过这个也还好,问题不大。 - 后端统一存储
中间件(比如缓存redis)统一存储session信息,重启和扩容session信息不丢失。
二、总结
用的比较多的是第三个或者第四个,个人推荐第四个最好,这样web-server是无状态的,可以保证水平的基础上,同时保证HA高可用
三、参考
Refer:https://blog.csdn.net/fei1234456/article/details/106323868/