利用memcache来保存tomcat的session会话
2012-04-02 19:59
411 查看
利用memcache来保存tomcat的session会话 网上有大量的文章有写memcache在tomcat的设置方法,基本上都从一个文章里转的,把内容都搞乱了。 为此,写一篇记录一下。本文的主要目的是修正一下,部分网上有误的地方。 前提条件: 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 我想通过以上的判断,配置 是成功的! 关于tomcat的负载均衡:http://myhat.blog.51cto.com/391263/785131
相关文章推荐
- 利用memcache来保存tomcat的session会话
- 利用memcache来保存tomcat的session会话
- tomcat+nginx+redis实现均衡负载、session共享---让Tomcat把会话Session保存到Redis数据库。
- Nginx反向代理Tomcat实现现负载均衡(高可用)以及利用redis+Session同步会话共享配置详解
- Nginx+LAT(apache+tomcat)的实现和使用memcached保存tomcat的session会话 推荐
- PHP利用memcache保存session
- 为什么要使用tomcat+memcache实现session共享而不使用会话保持
- 利用tomcat-redis-session-manager做session同步时自定义类对象属性保存不上的解决方法
- 利用memcache来保存tomcat的session会话
- 利用session_set_save_handler()函数将session保存到MySQL数据库中
- asp.net 使用 StateServer 持久保存 Session 会话状态 !
- linux环境下通过nginx实现tomcat集群实现Session会话问题
- PHP保存session到memcache服务器的方法
- memcache保存php session
- Apache + tomcat实现高并发负载均衡方案(四)----实现session共享(memcache)的集群
- session分别保存为文件,数据库和memcache中得做法
- TOMCAT7.0利用memcached-session-manager 实现SESSION共享
- [原创]WCF技术剖析之五:利用ASP.NET兼容模式创建支持会话(Session)的WCF服务
- php使用MySQL保存session会话的方法
- 利用tomcat-redis-session-manager实现单点登录