码迷,mamicode.com
首页 > 系统相关 > 详细

Tomcat+Memcached实现Session共享

时间:2015-07-10 16:58:42      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:tomcat memcached nginx session共享

    在先前的例子中,我用Tomcat官方提供的Session复制方式实现Tomcat集群Session共享。今天,我用另一种方式Memcached-Session-Manager来实现Session共享。话不多说,上实例。

    Memcached-Session-Manager将Session序列化到Memcache中,序列化的组件有很多,比如:

msm-kryo-serializer、msm-javolution-serializer等,这里使用msm-javolution-serializer,使用不同组件需要的jar包是不同的。所需jar包如图所示:

技术分享

如果使用maven的话,这些jar包可以这样得到:

技术分享

本例中,由于使用msm-javolution-serializer作为序列化Session的组件,所以只需要前5个jar包。

将这5个jar包拷贝的两个tomcat的lib目录中,如下图:

技术分享

为了将Session序列化到Memcache中,需要改变Tomcat的默认的StandardManager

在$CATALINA_HOME/conf/context.xml文件的Context元素中增加如下配置:

技术分享

如果用msm-kryo-serializer组件的话,这里的transcoderFactoryClass的值应该是

de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory

同时,为了能够在Tomcat控制台($CATALINA_HOME/logs/catalina.out)看到Memcached-Session-Manager输出的日志,我们在$CATALINA_HOME/conf/logging.properties文件的最后增加如下配置:

技术分享

server.xml文件不需要做更改

技术分享既然要将Session保存到Memcache中,Memcache是必不可少的,这里就不做介绍。启动两个memcached

memcached -d -p 11211 -u root

memcached -d -p 11212 -u root

同时,为了负载均衡需要启动nginx

service nginx start

最后,分别启动两个Tomcat

技术分享

激动人心的时刻到了,让我们看看tomcat的启动日志

技术分享

接下来,还是用我们以前的test为例来看看是不是能够实现负载均衡+Session共享

答案是肯定的,结果是之前用Session复制的效果是一样的

技术分享

最后,来看看控制台

技术分享

成功!


参考:

http://my.oschina.net/smallsun512/blog/164107

http://www.tuicool.com/articles/VZz6bm
http://chenzhou123520.iteye.com/blog/1650212

http://www.iteye.com/topic/1125301

http://blog.chinaunix.net/uid-26719405-id-4683071.html


本文出自 “十里稻花香” 博客,请务必保留此出处http://5880861.blog.51cto.com/5870861/1672825

Tomcat+Memcached实现Session共享

标签:tomcat memcached nginx session共享

原文地址:http://5880861.blog.51cto.com/5870861/1672825

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!