当同一个集群中的 两个相同服务 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中数据的服务中添加依赖
注意这样需要手动修改域名
标签:存储,服务,相同,问题,域名,session,共享 来源: https://www.cnblogs.com/Lcch/p/16367035.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。