您的位置:首页 > 数据库 > Memcache

Memcached_Session_Manager(msm)实现tomcat集群session共享

2016-01-09 00:00 681 查看

1:什么是memcached session manager

memcached session manager是一个高可用的Tomcat session共享解决方案,可使用memcached存取Session,以实现高可用。

2:使用场景

一些大型的web2.0的网站,在正式部署时一般是部署在不同故障域的多台应用服务器上,以j2ee应用为例,一般我们都会部署在tomcat下,假如我们部署了10台tomcat服务器,那这10台tomcat可能是部署在不同的机器上,然后将应用程序copy到这10台tomcat下,然后启动所有tomcat,一般来说这样做的目的是为了达到负载均衡以及避免单点故障,另外也考虑到国内网络环境的原因,避免跨网络运营商访问而导致访问速度低下的问题。

当客户访问A服务器时,如果A服务器发生故障或者维护时,访问A服务器的就会负载均衡到B机器,但是session信息会丢掉,用户会发现,突然跳到登录页,用户体验不好。memcached session manager就是为了解决这个问题。

3:配置方法

(1)将上面所提到的包全部拷贝到tomcat的lib下(所有负载的tomcat都需要)



相关jar包下载地址

(2)修改每台tomcat的conf目录下得context.xml文件或者server.xml文件,在其中加入如下代码

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


其中127.0.0.1:11210是memcache的地址和端口

4:启动服务器

一月 08, 2016 11:55:05 下午 de.javakaffee.web.msm.MemcachedSessionService startInternal
信息: MemcachedSessionService starts initialization... (configured nodes definition n1:127.0.0.1:11210, failover nodes null)
2016-01-08 23:55:05.717 INFO net.spy.memcached.MemcachedConnection:  Added {QA sa=/127.0.0.1:11210, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2016-01-08 23:55:05.720 INFO net.spy.memcached.MemcachedConnection:  Connection state changed for sun.nio.ch.SelectionKeyImpl@7b87d6c5
一月 08, 2016 11:55:05 下午 de.javakaffee.web.msm.SessionTrackerValve <init>
信息: Setting ignorePattern to .*\.(ico|png|gif|jpg|css|js)$
一月 08, 2016 11:55:05 下午 de.javakaffee.web.msm.MemcachedSessionService setLockingMode
信息: Setting lockingMode to URI_PATTERN with pattern /path1|/path2
一月 08, 2016 11:55:05 下午 de.javakaffee.web.msm.MemcachedSessionService createTranscoderFactory
信息: Creating transcoder factory de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory
一月 08, 2016 11:55:05 下午 de.javakaffee.web.msm.serializer.kryo.KryoTranscoder <init>
信息: Starting with initialBufferSize 102400 and maxBufferSize 2048000
一月 08, 2016 11:55:05 下午 de.javakaffee.web.msm.MemcachedSessionService startInternal
信息: MemcachedSessionService finished initialization, sticky false, with node ids [n1] and failover node ids []
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息