memcached-session-manager使用总结

来源:互联网 发布:录屏软件fast 编辑:程序博客网 时间:2024/04/24 03:26

在做tomcat中session集群时,遇到了一个问题,怎么让session存到缓存中,网上搜索资料,发现了memcached-session-manager(简称:msm)

分享地址:

https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration

上面的文章,讲解了msm怎么配置的全过程。

一、msm的两种模式:

1.Sticky

Sticky 模式:tomcat session  session memcached 为备 sessionRequest请求到来时, memcached加载备 session tomcat (仅当tomcat jvmroute发生变化时,否则直接取tomcat session)Request请求结束时,将tomcat session更新至memcached,以达到主备同步之目的。

2. Non-Sticky

Non-Sticky模式:tomcat session  中转session memcached1 为主 sessionmemcached 2 为备sessionRequest请求到来时,从memcached 2加载备 session  tomcat,(当 容器 中还是没有session 则从memcached1加载主 session  tomcat 这种情况是只有一个memcached节点,或者有memcached1 出错时),Request请求结束时,将tomcat session更新至memcached1和备memcached2,并且清除tomcat session 。以达到主备同步之目的。


二、配置信息

下面的配置都是在tomcat context.xml中<Context></Context>中配置

1.Sticky

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"    memcachedNodes="n1:host1.yourdomain.com:11211,n2:host2.yourdomain.com:11211"    failoverNodes="n1"    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"    />

2. Non-Sticky

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"    memcachedNodes="n1:host1.yourdomain.com:11211,n2:host2.yourdomain.com:11211"    sticky="false"    sessionBackupAsync="false"    lockingMode="uriPattern:/path1|/path2"    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"    />

三、jar

commons-codec-1.5.jar

couchbase-client-1.1.5.jar

httpcore-4.1.1.jar

httpcore-nio-4.1.1.jar

javolution-5.5.1.jar

jettison-1.1.jar

memcached-session-manager-1.6.4.jar

memcached-session-manager-tc7-1.6.4.jar

msm-javolution-serializer-1.6.4.jar

netty-3.5.5.Final.jar

spymemcached-2.8.12.jar


验证是否成功: 
登录发布的系统(发现这个时候请求全部路由到tomcat1),之后,关闭tomcat1,继续在里面做有关session的操作。发现这个时候请求被tomcat2接管,而且session依然保持(从memcached中拿出)。ok,这样就说明成功了。 

non_sticky的配置一样按上面的方法来验证是否成功。 








0 0
原创粉丝点击