Java中tomcat memecached session 共享同步问题的解决办法
事件缘由:一个主项目“图说美物”,另外一个子功能是品牌商的入驻功能,是跟主项目分开的项目,为了共享登录的用户信息,而实现session共享,俩个tomcat,一个tomcat6,一个tomcat7 web项目windows系统下实现session的共享 第一个步: 在俩个tomcat的context.xml这个文件中配置如下代码: <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:127.0.0.1:11211" lockingMode="auto" sticky="true" requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" copyCollectionsForSerialization="true" /> 第二步: Tomcat6下添加的jar包: tomcat7下添加的jar包: PS:利用memcache来保存tomcat的session会话 写此文的主要目的是修正一下,部分网上有误的地方。 前提条件: 1、memcached正常工作了 1、安装方法及安装包 javolution-5.4.3.1.jar 安装方法: 将这几个包放到/usr/local/tomcat6.0/lib里。 2、编辑tomcat的配置文件。 <这一点很重要,因为网上大多数文章都是说修改server.xml里配置;我试过但最终发现session的信息没有存入到memcache中,我意识到这可能是配置有问题。目前发现编辑context.xml这个文件,是可以立即将session丢入到memcache中的。> # vim /usr/local/tomcat6.0/conf/context.xml <Context> <!-- 在这个字段下添加以下内容,在节点入请填入你的memcached服务器ip及端口号--> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:10.254.41.197:11211" requestUriIgnorePattern=".*.(png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" copyCollectionsForSerialization="false" /> </Context> 3、如何测试? 我目前的测试方法是,通过apache的mod_jk来实现负载均衡(之前的文章里有写),并且启用tomcat之间的会话复制。 例如: ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat2 下次提交就会变成: <节点切换了,但是ID不变> ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat1 结合memcache的状态: <我之前在会话没有成功的丢到memcached这里时,cmd_set 为0 > # perl memcached-tool.pl 10.254.41.197:11211 stats 我想通过以上的判断,配置 是成功的! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- DataOutputSteam给我一个’java.io.IOException:意外的流结
- java – 无法启动Android Studio
- Java&RabbitMQ – 排队和多线程 – 或Couchbase作为作业
- java – Chrome无法加载gwt源地图
- 线程“main”中的异常java.util.NoSuchElementException:找
- JSP Request.isUserInRole()方法:判断认证后的用户是否属于
- Java WSDL修改或隐藏Web View上的某些属性
- 为什么有必要将一个Response对象而不是String对象返回给jav
- 在java中存储未知数量的字符串的最快方法是什么?
- 注释 – @Singleton在java EJB中