一文读懂Session共享

在 一文读懂Cookie与Session 中我们介绍了Cookie与Session,这篇文章将继续这个话题,讲述Cookie与Session的实际应用场景。

基于Cookie与Session的登录认证

这是上一篇文章的登录模型,它在单机系统中,表现的很好很强大。但是在分布式系统中却不适用,如下图,有3台Tomcat,你在tomcat1登录了一次,但是你去tomcat2去访问的时候,因为session只存在tomcat1中,所以你又得去登录一遍,累死。

那么有没有好的解决方案呢,有的,那就是Session共享

Session共享

1.session复制

比较经典的就是tomcat集群的session复制机制。用户浏览器访问后,负载均衡器定位到了Tomcat1,如果发现Tomcat1没有session,就会创建一个session,作为主备份(primary copy)。同时广播给其他Tomcat服务器,让它们生成tomcat1的session的拷贝(backup copy)。

第二次用户浏览器访问,如果Tomcat1挂了,负载均衡器分配到比如Tomcat2上,就会有以下两种情况:

1.Tomcat2没有session拷贝,它会向其他Tomcat机器询问是否有session拷贝,有的话,借给她一份。Tomcat2借到session拷贝后,作为主备份,然后再广播给其他的机器。

2.Tomcat2有session拷贝,升级为主拷贝,然后广播给其他机器

2.Session集中存储

这种情况下,就是完全把Session托管给外部环境,比如redis缓存,数据库等,来进行统一存储。所有的服务器统一从一个地方读取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值