分布式架构下的session共享,也可以称作分布式session一致性;关于这个问题,和大家说一说解决方案(如果有其他的方案,可以留言讨论)。
如果大家做过web应用开发的话,应该对session比较熟悉;服务器会为每个用户创建一个会话,存储用户的相关信息,以便在后面的请求中,可以够定位到同一个上下文。
例如用户在登录之后,再进行页面跳转的时候,存储在session中的信息会一直保持,如果用户还没有session,那么服务器会创建一个session对象,直到会话过期或主动放弃后(退出),服务器才会把session终止掉。
在N年前,那个都是单个服务器的年代,session直接保存在服务器中,是一点问题没有的,而且实现起来很容易。
但是随着分布式架构的流行,单个服务器已经不能满足系统的需要了,通常都会把系统部署在多台服务器上,通过负载均衡把请求分发到其中的一台服务器上,这样很可能同一个用户的请求被分发到不同的服务器上,因为session是保存在服务器上的,那么很有可能第一次请求访问的A服务器,创建了session,但是第二次访问到了B服务器,这时就会出现取不到session的情况。
于是,分布式架构中,session共享就成了一个很大的问题。
可以参考以下四种方式,具体采用那种根据实际项目情况做一个权衡 :
1.Session sticky(粘性):
思路就是某一个用户第一次登陆时session保存到哪个地方,第二次访问时还去哪个服务器找。
2.Session Relication(复制):
为每台应用服务器都保存一份session数据,适用于机器比较少的情况
3.Session 共享:
将session数据集中保存,所有的应用服务器都来访问这个session共享服务器
4.cookie Base:
session数据存放在cookie中,然后在应用服务器从cookies中生成对应的session数据,但是会有安全性的问题
到此,以上就是小编对于的问题就介绍到这了,希望这1点解答对大家有用。
分享标题:redis怎么将众多对象组织在一起
链接分享:http://www.mswzjz.cn/qtweb/news30/330530.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能