• 【分布式下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数据库中、


     

  • 相关阅读:
    5、axios获取后端数据
    token
    转载:requestAnimationFrame
    YII的特殊删除语句组装
    c /c++ 工程写法 linux makefile多文件编译 原理
    c 语言函数传参的sizeof问题
    使用mermaid语言定制甘特图,Typora/语雀都支持
    Nginx 配置文件
    Docker Compose(7)
    Docker网络模式详解及容器间网络通信(6)
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860935.html
Copyright © 2020-2023  润新知