session共享问题

当同一个集群中的 两个相同服务 seesion存在不能共享的问题
  1 解决方法 集群环境下 可以使用session复制 当用户a访问第一个节点 登陆成功后会存储到session中去 然后将session同步到其他节点
     优点 :在tomcat支持 只需要修改配置文件即可
        缺点 不支持水平扩展 当集群越来越多 同步时网络带宽增加 随着用户越来越多 该服务存储相同的session信息 数据冗余较大 所以不推荐
  2 hash一致性 只需要修改nginx配置不需要修改代码 保证每一个用户经过nginx后都会进入相同的服务
      优点 负载均衡 只要hash属性的值是分布均匀的 多态服务时负载均衡的
         支持水平扩展
      
      缺点 session还是存放在服务端 重启服务会导致session丢失

  3 统一存储 将集群下相同服务的session存储在第三方存储中 例如redission
      优点 没有安全隐患
         可以水平扩展
         服务重启或者扩容都不会影响session的丢失
      
    

 

 

当不同服务调用登陆状态时 也会存在session跨服务 而造成不能共享的问题

 

---------------------------------------------------------------------------------------------

 

 

 

在相同一级域名下 的不同二级域名之间的session共享(在同一个项目中的一级域名相同  )
msb.mall.com com 顶级域名 mall/search 一级域名 msb 二级域名
msb.search.com

因此我们需要修改一级域名 同一一级域名 才能实现不同服务之间的session共享

 

 

 

 

 

 

 yml配置

 

 同样  我么也需要在另一个需要获取到session中数据的服务中添加依赖

注意这样需要手动修改域名

 

posted @ 2022-06-11 22:35  花心大萝卜li  阅读(228)  评论(0)    收藏  举报