session工作原理以及session一致性解决方案

session工作原理以及session一致性解决方案

一. HttpSession工作原理

    1.访问浏览器的时候会创建session保存到本地缓存(JVM中的concurrenthashmap).

    2.将sessionId放入cookie中,响应给浏览器,浏览器保存cookie

    3.服务器根据cookie中的sessionId就能分辨出这个请求属于哪个session,后续请求这个站点都会带上这个Cookie

二.  session丢失

在搭集群的时候,用Ngix做方向代理可能服务器的请求会被分配到不同的机器上造成session不一致

session工作原理以及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拦截器

          session工作原理以及session一致性解决方案

session工作原理以及session一致性解决方案