Tomcat集群Session丢失解决方案
这几天单服务器整合项目很正常,集群的时候问题就来了,配置集群的Session时候已经使用Demo测试过正常的,项目一放上去就挂了,搞了差不多一个星期,其中还试过用Cookie来取代Session,因为安全问题放弃了;网上发现一个很不错的Tomcat的Session管理插件Memcached Session Manager,这个插件是基于Memcached实现的,配置方法如下:
先安装memcached server,首先解压memcached-1.2.6-win32-bin.zip到指定目录(eg:d:/memcached/),然后在cmd窗口上输入memcached -d install 进行安装服务, 然后输入 memcahced -d start启动服务器,服务器监听的端口是11211。
然后再把所需的jar包放到tomcat的lib目录下:
javolution-5.5.1.jar
msm-javolution-serializer-1.5.1.jar
memcached-2.6.jar
memcached-session-manager-1.5.1.jar
memcached-session-manager-tc6-1.5.1.jar
新建一个Web Project测试一下吧。
然后修改tomcat的server.xml配置文件,在Engine -> Host 元素里面配置虚拟上下文
Eg:
<Context reloadable="true" path="/test" docBase="D:/Memcached" > <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:localhost:11211" requestUriIgnorePattern=".*\.(png|gif|jpg|css|js){1}" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactory copyCollectionsForSerialization="false" /> </Context>