1、采用无状态服务,抛弃session
2、存入cookie (有安全风险)
3、服务器之间进行Session同步,这样可以保证每个服务器上都有全部的Session信息,不过当服务器数量比较
多的时候,同步是会有延迟甚至同步失败;
4、IP 绑定策略
使用Nginx (或其他复杂均衡软硬件) 中的IP绑定策略,同一个IP只能在指定的同一个机器访问,但是这样做
失去了负载均衡的意义,当挂掉一台服务器的时候, 会影响一批用户的使用,风险很大;
5、使用Redis存储
- 把Session放到Redis中存储,虽然架构上变得复杂,并且需要多访问- -次Redis,但是这种方案带来的好处也是很大的:
- 实现了Session共享;
- 可以水平扩展(增加Redis服务器) ;
- 服务器重启Session不丢失(不过也要注意Session在Redis中的刷新/失效机制) ;
- 不仅可以跨服务器Session共享,甚至可以跨平台(例如网页端和APP端)。