解决集群模式下session共享问题

写在前面:这篇文章讲解了集群模式下Session共享问题的解决方案,如果有疑问可在评论区留言讨论。

文章目录

  • 集群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类型的数据库。
解决集群模式下session共享问题_第1张图片

有任何想要讨论和学习的问题可联系我:[email protected]
不足之处请大家指正。

你可能感兴趣的:(Redis,tomcat,java,数据库,redis)