session工作原理以及session一致性解决方案
一. HttpSession工作原理
1.访问浏览器的时候会创建session保存到本地缓存(JVM中的concurrenthashmap).
2.将sessionId放入cookie中,响应给浏览器,浏览器保存cookie
3.服务器根据cookie中的sessionId就能分辨出这个请求属于哪个session,后续请求这个站点都会带上这个Cookie
二. session丢失
在搭集群的时候,用Ngix做方向代理可能服务器的请求会被分配到不同的机器上造成session不一致
三. Nginx负载均衡策略
1. 轮询 :默认轮询策略,也就是轮流访问各个服务器。
2.weight权重 : 可以设置权重(weight),权重设置越大,访问的频率越高。
3.Ip_hash : 若访问的IP地址不变和后台服务器数量不变,那么就会访问同一台机器,session不会丢失
4.支持扩展自定义策略:(略)。
四. sesion一致性解决方案
1. 可以通过ip_hashf负载均衡
2. 服务器的session复制: a. 需要修改server.xml中的cluser的节点
b. 修改web.xml 增加标签<distribute>节点
3. session统一缓存(推荐)
需要做哪些改变:用redis做统一缓存,增加filter拦截器