(资料图片)
在 一文读懂Cookie与Session 中我们介绍了Cookie与Session,这篇文章将继续这个话题,讲述Cookie与Session的实际应用场景。
这是上一篇文章的登录模型,它在单机系统中,表现的很好很强大。但是在分布式系统中却不适用,如下图,有3台Tomcat,你在tomcat1登录了一次,但是你去tomcat2去访问的时候,因为session只存在tomcat1中,所以你又得去登录一遍,累死。
那么有没有好的解决方案呢,有的,那就是Session共享
比较经典的就是tomcat集群的session复制机制。用户浏览器访问后,负载均衡器定位到了Tomcat1,如果发现Tomcat1没有session,就会创建一个session,作为主备份(primary copy)。同时广播给其他Tomcat服务器,让它们生成tomcat1的session的拷贝(backup copy)。
第二次用户浏览器访问,如果Tomcat1挂了,负载均衡器分配到比如Tomcat2上,就会有以下两种情况:
没有session拷贝,它会向其他Tomcat机器询问是否有session拷贝,有的话,借给她一份。Tomcat2借到session拷贝后,作为主备份,然后再广播给其他的机器。
有session拷贝,升级为主拷贝,然后广播给其他机器
这种情况下,就是完全把Session托管给外部环境,比如redis缓存,数据库等,来进行统一存储。所有的服务器统一从一个地方读取。
关键词:
Copyright 2015-2022 亚洲供销网版权所有 备案号: 京ICP备2021034106号-51 联系邮箱:5 516 538 @qq.com