程序员济癫 2018-07-22 13:55 采纳率: 50%
浏览 775
已结题

tomcat+memcached在阿里云ECS上实现session共享不成功

首先,配置是在本地经过验证的,可以实现共享。
1、两个tomcat配置都检查了两遍是OK的,启动之后访问页面登录之后也能有session进入到memcached中,说明tomcat和memcached服务器的连接是OK的;
2、使用MSM管理session的那段配置,确定是no-skity的,也查过资料和官网配置,本身配置其实不多,直接照搬来改的,也是OK的。
但是,其中一台tomcat登录后,另一台怎么刷新也还是在登录页,直接访问主页也会被拦截器拦截下来,说明没有session不让登入,观察memcached服务器里面,发现有第一台的session;然后第二台我直接手动登录后,发现memcached又有了第二个session。

反正就是这俩tomcat根本没有共享session,memcached也有值,不知道还有哪里有问题。
###########################################
第二次测试,我用一个小的test工程打包,里面就只有一个jsp页面来获取session,部署到服务器上去测试了一下,发现只要一刷新,memcached服务器里面就会多一个session值,而且每次刷新都是新的session装入memcached。

日了狗了啊,配置确定没问题,就是导入jar包和修改context.xml,版本也检查过了是正确的。o(╥﹏╥)o
###########################################
接下来是第三次测试,我直接把项目打包部署在本地自己电脑的两个不同端口的tomcat上,启动后访问,发现竟然可以实现session共享?!连接的memcached服务器依旧是阿里云的,观察session没问题,session共享是OK的!

但是我把项目部署到阿里云的两台机器的tomcat上之后,访问之后发现就不行了,一台登录的时候往memcached塞入了session,但是另一台刷新还是拿不到session,打印出来session值是空的!!
###########################################
崩溃了......
这到底是为什么呢?本地不同端口的两个tomcat就可以session共享,但是搬到阿里云上面就不行了,端口确定都打开了,因为不打开的话根本不能往memcached里面set进值。
那到底还有什么原因呢?难道是阿里云还有啥限制?和本地测试唯一的区别就是,本地是不同端口的两个tomcat测试的,阿里云上的两台是不同的服务器,tomcat的ip和端口都不同,可问题是他们都是互通的啊,Telnet了memcached服务器也都是通的。
郁闷死了!
求大佬给点思路啊!

  • 写回答

4条回答 默认 最新

  • devmiao 2018-07-22 14:40
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器