nginx +tomcat+memcached集群,写session不生效

nginx +tomcat+memcached集群,写session不生效

怎言笑 发布于 2021-11-29 字数 168 浏览 885 回复 10

(2台)tomcat+memcached做了集群,sessionID在不同tomcat上相同的,但是给session赋值的时候,发现两边session不同步.非要给nginx 的upstream 配置上 jvm参数后,才能同步,这样配置对不?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

柒夜笙歌凉 2021-12-01 10 楼

session可以共享了,但是刷新了会丢失

如日中天 2021-12-01 9 楼

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

勿忘初心 2021-12-01 8 楼

一台的话系统形成单点了, 可靠性有问题

浮生未歇 2021-12-01 7 楼

一台。。我也认为是客户端轮询两台webserver造成的问题。

nginx hash下。。应该能解决

酷到爆炸 2021-12-01 6 楼

@蟋蟀哥哥 

memcached不一定非要2台吧?

猫性小仙女 2021-12-01 5 楼

@xf

我们使用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"
/>

裸钻 2021-12-01 4 楼

这个问题楼主怎么解决的啊

筱果果 2021-12-01 3 楼

@快慢机 没有解决. 先用着了

为你鎻心 2021-12-01 2 楼

session写进memcached呢

笑红尘 2021-12-01 1 楼

还是配置的问题吧,如果你给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个方案是首选。接下来就是安装搭建之路了。