天天看点

tomcat memcached session共享

本机使用win7

提前说明:不建议使用memcached共享session。原因是memcached坑爹的回收机制,存在用户突然掉线的风险。以及占用内存过大。

以下为由于各种历史问题导致需要使用memcached 共享的,记录。

ps:项目记得序列化

1、下载:http://memcached.org/

2、下载tomcat

3、开始:

1)、sc create "Memcached_11211" start= auto binPath= "C:\Program Files\memcached\memcached.exe -d runservice -m 1024 -p 11211 -l 127.0.0.1" DisplayName= "Memcached_11211"(默认端口11211)

sc start "Memcached_11211" //启动

sc stop "Memcached_11211" //停止

sc delete "Memcached_11211" //卸载该服务

参数直说:-m表示使用内存兆;-p表示使用端口

2)、配置tomcat下conf/context.xml

memcached支持的序列化参数

   1.javolution序列化tomcat配置<Context>与</Context>中间

   conf/context.xml添加

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

   memcachedNodes="n1:127.0.0.1:11211 n2:127.0.0.1:11311"   

   lockingMode="auto"

   sticky="false" 

   requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"    

   sessionBackupAsync= "false"   

   sessionBackupTimeout= "100"  

   copyCollectionsForSerialization="true"   

   transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" />

   lib增加jar包

   msm-javolution-serializer-cglib-1.3.0.jar

   msm-javolution-serializer-jodatime-1.3.0.jar

   spymemcached-2.10.3.jar

   javolution-5.4.3.1.jar

   msm-javolution-serializer-1.7.0.jar

   memcached-session-manager-1.7.0.jar

   memcached-session-manager-tc7-1.7.0.jar

2、xstream序列化tomcat配置

   conf/context.xml添加

   <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

   memcachedNodes="n1:127.0.0.1:11211 n2:127.0.0.1:11311"   

   lockingMode="auto"

   sticky="false" 

   requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"    

   sessionBackupAsync= "false"   

   sessionBackupTimeout= "100"

   transcoderFactoryClass="de.javakaffee.web.msm.serializer.xstream.XStreamTranscoderFactory" />

   lib增加jar包

   xmlpull-1.1.3.1.jar

   xpp3_min-1.1.4c.jar

   xstream-1.4.6.jar

   msm-xstream-serializer-1.7.0.jar

   spymemcached-2.10.3.jar

   memcached-session-manager-1.7.0.jar

   memcached-session-manager-tc7-1.7.0.jar

3、flexjson序列化tomcat配置

   conf/context.xml添加

   <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

   memcachedNodes="n1:127.0.0.1:11211 n2:127.0.0.1:11311"     

   lockingMode="auto"

   sticky="false" 

   requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"    

   sessionBackupAsync= "false"   

   sessionBackupTimeout= "100"      

   transcoderFactoryClass="de.javakaffee.web.msm.serializer.json.JSONTranscoderFactory" />

   lib增加jar包

   flexjson-3.1.jar

   msm-flexjson-serializer-1.7.0.jar

   spymemcached-2.10.3.jar

   memcached-session-manager-1.7.0.jar

   memcached-session-manager-tc7-1.7.0.jar

4、kryo序列化tomcat配置

   conf/context.xml添加

   <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

   memcachedNodes="n1:127.0.0.1:11211 n2:127.0.0.1:11311"   

   lockingMode="auto"

   sticky="false" 

   requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"    

   sessionBackupAsync= "false"   

   sessionBackupTimeout= "100"    

   copyCollectionsForSerialization="true"   

   transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />

   lib增加jar包

   kryo-1.04.jar

   minlog-1.2.jar

   asm-3.2.jar

   reflectasm-1.01.jar

   kryo-serializers-0.11.jar

   msm-kryo-serializer-1.7.0.jar

   spymemcached-2.10.3.jar

   memcached-session-manager-1.7.0.jar

   memcached-session-manager-tc7-1.7.0.jar

资源等下次上传。

推荐使用redis或者直接去session化(虽然,我们自己也没去掉,有各种理由:什么旧项目修改工程大、原始项目已经足够使用无需扩大什么的)

内容写的不全下次补充

继续阅读