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