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

linux-tomcat-memcached-session共享

2016-02-04 14:29 621 查看
上一篇介绍了redis集群对tomcat,session的共享,这一篇介绍memcached集群对tomcat,session的共享

一、安装,启动memcached

网上资料自己搜索,这里就不做讲解,我在本机安装了2个memcached,分别启动:

/usr/local/bin/memcached -d -m 1024 -p 11211 -u root -l 127.0.0.1

/usr/memcached/local/bin/memcached -d -m 1024 -p 11212 -u root -l 127.0.0.1

二、导入jar包:

每个tomcat的lib目录都要放置如下包

#序列化包

kryo-1.03.jar

kryo-serializers-0.10.jar

msm-kryo-serializer-1.6.4.jar

#memcached必须包和与tomcat交互包

memcached-session-manager-1.5.1.jar

memcached-session-manager-tc7-1.5.1.jar(注意tc7 这里要下载与你的tomcat对应的jar包)

spymemcached-2.7.3.jar

三、配置tomcat-context.xml

在context.xml的<Context></Context> 下配置加入--如果之前配置redis,记得注释掉

有两种配置方式,黏性策略与非黏性策略,对应的nginx使用的策略进行配置即可

<!-- 利用memcached 进行非粘性的session共享
failoverNodes="n1" 黏性策略下,指定对应memcached,
sticky="false" 非黏性-在非黏性策略下使用,
sessionBackupAsync="false"非粘性下使用,保证session一致  memcached 关闭异步复制session,进行同步复制
lockingMode="auto" 锁模式 非黏性策略使用,保证session一致
-->
<Manager
className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:127.0.0.1:11211,n2:127.0.0.1:11212"
sticky="false"
sessionBackupAsync="false"
lockingMode="auto"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>

配置完毕。分别启动tomcat,在游览器进行访问:

注意其中的n1,n2,这个代表访问的memcached是哪一个。与我们context.xml,配置的n1.n2一致。

现在我们关闭n1,继续访问:

可以看到,现在都使用n2的缓存session.而tomcat会一直访问memcached:

重新启动n1,它将继续加入到集群当中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: