我们先看下MSM的流程:
MSM(memcached-session-manager)支持tomcat6和tomcat7,利用Value(Tomcat阀)对Request进行跟踪。Request请求到来时,从memcached加载session,Request请求结束时,将tomcat session更新至memcached,以达到session共享之目的,支持sticky和non-sticky模式。
Sticky模式:
tomcat session为主session,memcached为备session。
Request请求到来时,从memcached加载备session到tomcat (仅当tomcat jvmroute发生变化时,否则直接取tomcat session);Request请求结束时,将tomcat session更新至memcached,以达到主备同步之目的。
(来源自网络)
Non-Sticky模式:
tomcat session为中转session,memcached1为主sessionmemcached 2为备session。Request请求到来时,从memcached 2加载备session到tomcat,(当 容器 中还是没有session 则从memcached1加载主session到tomcat,这种情况是只有一个memcached节点,或者有memcached1出错时),Request请求结束时,将tomcat session更新至主memcached1和备memcached2,并且清除tomcat session,以达到主备同步之目的。
(来源自网络)
memcached使用LRU算法来处理缓存。但是毛病在于它不是全局的,而是基于slab。 这样你会发现在运行一段时间后,最早访问的那些用户的SESSION会莫名其妙的丢失,即使他们上一秒还有过操作。
请看memcached的内存分配算法
http://wenku.baidu.com/view/90a6b19851e79b89680226d4.html
要解决基于 memcache 方案的数据丢失问题,可能解决的方案是:
1、使用memcachedb
2、引入持久化存储介质ZooKeeper
相关推荐
memcached-1.9.6,libevent-2.1.12-stable.tar memcached-session-manager-1.9.6,msm-kryo-serializer-1.9.6.jar,tomcat8.5,实现会话共享
自测适用于tomcat7,其他tomcat没有测试 asm kryo kryo-serializer kryo-serializers memcached-session-manager memcached-session-manager-tc7 minlog objenesis reflectasm spymemcached
Memcached-session-manager使用说明及相关jar包(tomcat7版) 依照文档部署即可实现多服务器多tomcat session共享,jar包中是tomcat7集成所需要的jar包,序列化工具用的是java默认的序列化工具,若要使用其他版本的...
memcached-session-manager-1.6.5.jar
本lib包包含:javolution-5.5.1.jar、kryo-1.03.jar、kryo-serializers-0.10.jar、memcached-2.5.jar、memcached-session-manager-1.5.1.jar、memcached-session-manager-tc7-1.5.1.jar、minlog-1.2.jar、msm-...
memcached-session-manager-tc6-1.6.3.jar
memcached-session-manager-1.8.1.jar
memcached-session-manager-1.6.5.jar
memcached-session-manager-tc7
完全可以根据github的要求来配置,我只是没分了~ 官网地址:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration#add-memcached-session-manager-jars-to-tomcat
适应MSM的整合包,有 flexjson-3.3 msm-flexjson-serializer-1.9.6 msm-spymemcached-2.11.3 memcached-session-manager-1.9.6 memcached-session-manager-tc8-1.9.6
tomcat-7.0.54配合使用的memcached-session-manager-1.6.1的整套jar包
memcached-session-manager
memcached-session-manager-tc7-1.6.5.jar
网上下载过N种jar版本,启动tomcat报各种错误;浪费了很多时间;本资源经tomcat7、tomcat8测试,均正常实现负载均衡,session共享功能。
memcached-session-manager_4_tomcat8 用在centos7 下的tomcat 8.0.33 java 1.8 测试成功