首页 > 其他 > 详细

Tomcat之分布式session共享(MSM)

时间:2020-06-21 16:36:19      阅读:78      评论:0      收藏:0      [点我收藏+]

1. MSM简介

1.1 MSM(memcached session manager)

  • MSM是一个用于解决分布式tomcat环境下session共享问题的开源解决方案
  • 以tomcat插件的方式部署在了tomcat服务器上
  • 即可以从本机内存快速读取Session信息(黏性Session),也可以使用memcached存储Session,以实现高可用

1.2 MSM的特性

  • 支持黏性、非黏性Session
  • 无单一故障点
  • 可处理tomcat故障转移
  • 可处理memcached故障转移
  • 插件式session序列化
  • 允许异步保存session,以提升响应速度
  • 只有当session有修改时,才会将session写回memcached
  • JMX管理&监控

1.3 黏性Session和非黏性Session(一般用于tomcat服务集群)

黏性Session:即session sticky,不复制Session会话:

  • 此模式下同一会话中的请求都被派发到同一个tomcat实例上,这样就无须在多台服务器之间实现session共享了
  • 缺点:不能实现failover(故障切换),一旦用户访问的机器挂掉,那么其session就会丢失

非黏性Session:即session replication,复制Session会话:

  • 此模式下同一个会话中的请求可以被分配到不同的tomcat实例上进行处理
  • 此时就需要在不同服务器之间同步、复制session,这样即使一台服务器挂掉了,请求在其他服务器上照样可以访问到session信息
  • 缺点:Session复制需要系统资源和网络开销

1.4 MSM解决的问题

问题:

  • 若有一个Tomcat集群,使用粘性session,如何应对单点故障?
  • 为了应对更多的并发量和可用性,可以不断的增加Tomcat节点,但是单点故障仍旧会是个问题
  • 如果使用粘性Session,一个Tomcat故障时,其他Tomcat并不能就干故障Tomcat节点的Session

解决此问题:

  • 将粘性Session同时保存在Memcached中,如果单个Tomcat发生故障,集群中的其他Tomcat可以从Memcached中得到Session信息

2. Tomcat和Memcached的故障转移

2.1 Tomcat的故障转移

2.2 memcached的故障转移

 

Tomcat之分布式session共享(MSM)

原文:https://www.cnblogs.com/hgzero/p/13172620.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!