源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Java中tomcat memecached session 共享同步问题的解决办法

  • 时间:2022-10-12 02:01 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Java中tomcat memecached session 共享同步问题的解决办法
事件缘由:一个主项目“图说美物”,另外一个子功能是品牌商的入驻功能,是跟主项目分开的项目,为了共享登录的用户信息,而实现session共享,俩个tomcat,一个tomcat6,一个tomcat7 web项目windows系统下实现session的共享 [b]第一个步:[/b] 在俩个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"
/>
[b]第二步:[/b] Tomcat6下添加的jar包: [img]http://files.jb51.net/file_images/article/201510/201510131115494.png[/img] [b]tomcat7下添加的jar包:[/b] [img]http://files.jb51.net/file_images/article/201510/201510131115495.png[/img] PS:利用memcache来保存tomcat的session会话  写此文的主要目的是修正一下,部分网上有误的地方。 [b]前提条件:[/b] 1、memcached正常工作了 2、tomcat 正常工作了。 1、安装方法及安装包 javolution-5.4.3.1.jar memcached-2.4.2.jar memcached-session-manager-1.3.0.jar msm-javolution-serializer-cglib-1.3.0.jar msm-javolution-serializer-jodatime-1.3.0.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之间的会话复制。 这样的结果就是,seesion ID会随着每次用户的提交而变换节点,但ID不变。 例如: ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat2  下次提交就会变成: <节点切换了,但是ID不变> ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat1   结合memcache的状态: <我之前在会话没有成功的丢到memcached这里时,cmd_set 为0 > # perl memcached-tool.pl 10.254.41.197:11211 stats                  cmd_get          27                  cmd_set          15                  get_hits           12 # perl memcached-tool.pl 10.254.41.197:11211 stats                  cmd_get          31                  cmd_set          17       get_hits           14    我想通过以上的判断,配置 是成功的!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部