编程技术分享平台

网站首页 > 技术教程 正文

分布式架构下,Session共享有什么方案?

xnh888 2024-09-30 04:50:09 技术教程 15 ℃ 0 评论

常见的解决方案:tomcat 的 session复制同步方案、cookie客户端存储、nginx ip_hash一致性、后端统一存储

tomcat 的 session复制同步方案

解决方式:每个节点都复制其他节点的session

在大规模应用的时候,用户过多,集群内tomcat数量过多,session的全局复制会导致集群性能下降,因此,tomcat的数量不能太多,而且依赖tomcat容器移植性不好(一般不采用)

演变方式2:

使用Github中开源组件(Tomcat-redis-session-manager)整合到redis

cookie客户端存储

session存储在客户端的cookie中。

优点:

服务器不需存储session,用户保存自己的 session信息到cookie中。节省服务端资源

缺点:

1.每次http请求,携带用户在cookie中的完整信息,浪费网络带宽

2.session数据放在cookie中,存在泄漏、篡改、窃取等安全隐患

3.session数据放在cookie中,cookie有长度限制4K,不能保存大量信息

nginx ip_hash一致性

解决方式:固定的用户固定的请求一台服务器

后端统一存储

后端统一存储凭证,比如放入redis、数据库等(甚至可以放在每个应用的上下文当中,通过在拦截过程中,解析token,重新给每个无上下文的应用,进行设置token信息)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表