zoukankan      html  css  js  c++  java
  • 【分布式下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数据库中、


     

  • 相关阅读:
    友盟统计 新的集成方法
    Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"解决方法
    关于如何获取Google 官方 NavgationView中的控件的方法
    使用线程池管理线程!
    文件上传MultipartBody使用方法
    Ddos 分布式拒绝服务 (报告)
    linux+
    模型事件
    广东惠州游
    PhoneGap & Cordova 安装白皮书
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860935.html
Copyright © 2011-2022 走看看