根据:http://www.bubuko.com/infodetail-176507.html
http://chenzhou123520.iteye.com/blog/1650212
两篇文章,在真实环境中进行了实验,实现了使用javolution序列化的session非粘性共享。
jar下载地址和nginx、membercache安装配置等可参考链接文章。
实际环境:
host1:ngninx、membercache、 tomcat1
host2:membercache,tomcat2
实现结果:
不断刷新页面访问两台tomcat,sessionid一致。登录后操作流畅无问题。
具体操作:
1)在host1上的nginx配置两个server,指向两台host上的tomcat;
2)在host1和host2上各启动membercache一个实例,端口都是11211;
3)将serssion共享需要的jar和javolution序列化jar导入tomcat/lib:
memcached-session-manager-1.6.3.jar
memcached-session-manager-tc7-1.6.3.jar
msm-javolution-serializer-1.6.2.jar
spymemcached-2.8.4.jar
javolution-5.4.3.1.jar
4)修改每台tomcat/conf/server.xml:
在<Host>标签中加入
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:10.10.10.3:11211,n2:10.10.10.2:11211"
lockingMode="auto"
sticky="false"
requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"
sessionBackupAsync= "false"
sessionBackupTimeout= "100"
copyCollectionsForSerialization="true"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" />
5)重启tomcat。