nginx +tomcat+memcached集群,写session不生效
(2台)tomcat+memcached做了集群,sessionID在不同tomcat上相同的,但是给session赋值的时候,发现两边session不同步.非要给nginx 的upstream 配置上 jvm参数后,才能同步,这样配置对不?
如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

评论(10)

@
JackyYeong memcached确实只有一台,主要问题是tomcat2台之间session不复制,在nginx上使用hash策略,也不能保证宕机切换状态保持.

我们使用memcached共享.context.xml的配置.这样设置有问题吗
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:10.24.60.2:12000" requestUriIgnorePattern=".*.(png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />

还是配置的问题吧,如果你给nginx加上配置可以的话,那就不是mem的共享session了,而是nginx提供的session,
所以你需要配置的还是tomcat与mem之间的session共享问题
附:
Tomcat间session共享问题,解决方案选择:
多个tomcat要一起协同工作有几种办法,可以考虑的方案有以下几个:
1.使用tomcat自带的cluster方式,多个tomcat见自动实时复制session信息,配置起来很简单。但这个方案的效率比较低,在大并发下表现并不好。
2.利用nginx的基于访问ip的hash路由策略,保证访问的ip始终被路由到同一个tomcat上,这个配置更简单。但是我们的应用很可能是某一个局域网大量用户同时登录,这样负载均衡就没什么作用了。
3. 利用memcached把多个tomcat的session集中管理,这是最直接的解决方案,但是操作起来也最为复杂。
我们的系统既要求性能,又要比较好的利用上负载均衡,所以第3个方案是首选。接下来就是安装搭建之路了。
发布评论
需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。