分布式架构下,Session共享有什么方案

1、采用无状态服务,抛弃session

2、存入cookie (有安全风险)

3、服务器之间进行Session同步,这样可以保证每个服务器上都有全部的Session信息,不过当服务器数量比较

多的时候,同步是会有延迟甚至同步失败;

4、IP 绑定策略

使用Nginx (或其他复杂均衡软硬件) 中的IP绑定策略,同一个IP只能在指定的同一个机器访问,但是这样做

失去了负载均衡的意义,当挂掉一台服务器的时候, 会影响一批用户的使用,风险很大;

5、使用Redis存储

  • 把Session放到Redis中存储,虽然架构上变得复杂,并且需要多访问- -次Redis,但是这种方案带来的好处也是很大的:
  • 实现了Session共享;
  • 可以水平扩展(增加Redis服务器) ;
  • 服务器重启Session不丢失(不过也要注意Session在Redis中的刷新/失效机制) ;
  • 不仅可以跨服务器Session共享,甚至可以跨平台(例如网页端和APP端)。

你可能感兴趣的:(session,数据库,服务器,java)