【分布式下session的一致性】session一致性问题解决方案

 session 内存 tomcat创建。
 session和cookie是一对一,cookie会保存sessionId-->>>JsessionId

分布式下session一致性问题解决方案
  
方案1    基于ngnix的ip_hash策略来做负载均衡
   原理 根据ip做hash计算,同一个ip的请求始终会定位到同一台tomcat 
  
   缺点:如果一台tomcat宕机,就会出现用户session的缺失。

方案2    基于服务器session复制 
   原理: tomcat服务器创建session后,会通过组播方式把session发送到组播地址中的其他服务器上
    
    优点:侵入式较少 需要配置web.xml 分布式。session备份、

     缺点 延迟 受限内存资源。高流量 带宽占用较大、不灵活

方案3  Session集中统一管理
   原理 session不由tomcat管理,而是统一放到一个地方集中式管理,读取和写入session都依赖第三方软件
       例如 redis mongodb mysql等等
    
     优点:大型分布式环境首选方案。

    spring 如果做到session集中管理
     HttpSession是一个接口 --Servlet容器会实现HttpSession接口 给出实现(TomCat有一个Session容器)
        Spring Session本质:覆盖原有tomcat容器的HttpSession实现
        
    Spring Session源码  理解。
    Tomcat实现了对HttpSession接口的实现。但是使用SpringSession之后 在web.xml文件中配置了*** 就会是使用
  Spring Session的配置。SpringSession实现类有JDBCSessionRespository Mongdb Redis。因此。在配置了RedisSession
  仓库之后就会自动使用Redis的实现类。添加到Redis数据库中。将Session信息存储到Redis数据库中、


 

全部评论

相关推荐

字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
点赞 评论 收藏
分享
微风不断:兄弟,你把四旋翼都做出来了那个挺难的吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务