写在前面:这篇文章讲解了集群模式下Session共享问题的解决方案,如果有疑问可在评论区留言讨论。
文章目录
集群Session的共享问题
Session共享问题:多台Tomcat并不共享session存储空间,当请求切换到不同tomcat服务时,导致数据丢失问题。
在早期tomcat为了解决这个问题,提供了session拷贝的功能,也就是多台tomcat之间只要做好一些配置,互相之间可以实现数据拷贝,但这种数据拷贝有几个问题。
- 多台tomcat拷贝相同的数据,是一种内存空间的浪费
- 拷贝数据的时候需要一定的时间,如果在这个时间内有人来访问,依然会出现数据不一致
以上,导致这种方案并没有被广泛使用。
那么session的替代方案应该满足:
- 数据共享
- 最重要的,正是因为集群模式下session没共享才导致的问题。
- key、Value结构
- session的结构是key、value存取比较简单。
- 内存存储
- 因为session是基于内存的,所以读写效率比较高。如果读写性能较差,是难以满足高并发需求的
同时能实三点的也就是Redis了,存在Redis的数据,任何一台tomcat都能看得见,就不会出现数据丢失的情况,redis是内存存储,性能非常强,redis就是key-value类型的数据库。
有任何想要讨论和学习的问题可联系我:577371067@qq.com
不足之处请大家指正。