利用memcache来保存tomcat的session会话


  
  
  1. 利用memcache来保存tomcat的session会话 
  2.  
  3. 网上有大量的文章有写memcache在tomcat的设置方法,基本上都从一个文章里转的,把内容都搞乱了。 
  4. 为此,写一篇记录一下。本文的主要目的是修正一下,部分网上有误的地方。
  5. 前提条件:
  6. 1、memcached正常工作了
  7. 2、tomcat 正常工作了。
  8.  
  9. 1、安装方法及安装包 
  10. javolution-5.4.3.1.jar 
  11. memcached-2.4.2.jar 
  12. memcached-session-manager-1.3.0.jar 
  13. msm-javolution-serializer-cglib-1.3.0.jar 
  14. msm-javolution-serializer-jodatime-1.3.0.jar 
  15.  
  16. 安装方法:  将这几个包放到/usr/local/tomcat6.0/lib里。 
  17.  
  18. 2、编辑tomcat的配置文件。 <这一点很重要,因为网上大多数文章都是说修改server.xml里配置;我试过但最终发现session的信息没有存入到memcache中,我意识到这可能是配置有问题。目前发现编辑context.xml这个文件,是可以立即将session丢入到memcache中的。> 
  19. # vim /usr/local/tomcat6.0/conf/context.xml 
  20. <Context> 
  21. <!-- 在这个字段下添加以下内容,在节点入请填入你的memcached服务器ip及端口号--> 
  22.                 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"   
  23.                         memcachedNodes="n1:10.254.41.197:11211"   
  24.                         requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"   
  25.                         sessionBackupAsync="false"   
  26.                         sessionBackupTimeout="100"   
  27.                         transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"   
  28.                         copyCollectionsForSerialization="false" /> 
  29. </Context> 
  30.  
  31. 3、如何测试?  
  32. 我目前的测试方法是,通过apache的mod_jk来实现负载均衡(之前的文章里有写),并且启用tomcat之间的会话复制。 
  33. 这样的结果就是,seesion ID会随着每次用户的提交而变换节点,但ID不变。 
  34. 例如: 
  35. ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat2  
  36. 下次提交就会变成: <节点切换了,但是ID不变> 
  37. ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat1  
  38.  
  39. 结合memcache的状态: <我之前在会话没有成功的丢到memcached这里时,cmd_set 为0 > 
  40. # perl memcached-tool.pl 10.254.41.197:11211 stats 
  41.                  cmd_get          27 
  42.                  cmd_set          15 
  43.                  get_hits           12 
  44. # perl memcached-tool.pl 10.254.41.197:11211 stats 
  45.                  cmd_get          31 
  46.                  cmd_set          17 
  47.       get_hits           14 
  48.  
  49. 我想通过以上的判断,配置 是成功的! 
  50. 关于tomcat的负载均衡:http://myhat.blog.51cto.com/391263/785131
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1,在tomcat中找到文件apache-tomcat-6.0.37\conf\context.xml 加入内部 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:192.168.1.65:11211" requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" copyCollectionsForSerialization="false" /> 加入之后的content.xml的内容为 <?xml version='1.0' encoding='utf-8'?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- The contents of this file will be loaded for each web application --> <Context> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> <!-- Uncomment this to enable Comet connection tacking (provides events on session expiration as well as webapp lifecycle) --> <!-- <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:192.16

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值