负载均衡memcached里sessionID不一致

lv5956047123 2014-10-20 05:20:44
项目打算搞负载均衡什么的,
目前测试环境部署了nginx 做反向代理,转发到两个tomcat分别A和B,session用memcached来存储
可问题是目前访问个有验证码的登录页面,验证码存sessIon时候有个jsessionid对应,
等到登录提交时候,却是另一个jsessionid作key值取的,为什么了?同一个浏览器

是不是访问了两次了,还有其实sessionid是什么时候生成的?是浏览器生成的还是服务器端生成的,怎么不一样了?
有谁知道的么
...全文
1098 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
SESSIONID 是服务器端生成的 你说的不一样是前端提交过来的和你服务器端的不一样是么? 这个时候你要考虑 前端是不是已经刷新过了或隐含了另一个请求,从而生成了新的SESSIONID ?
dokia123 2014-11-03
  • 打赏
  • 举报
回复
引用 6 楼 zihua2005 的回复:
建议通过session中的 setAttribute(名字) 来进行session识别,session同步依靠tomcat的session 同步配置 ,我不知道生产环境负载均衡下 同步是 怎么来实现的 ,有的是 通过客户ip 通过计算 固定选择 到哪个服务器去!你如果解决了 也希望分享下!
集群环境下面的session共享有两种方式,一种是sticky session,一种是non-sticky session,sticky session确实是某个用户每次访问固定由反向代理服务器将请求转发到某台服务器上面,而apache是通过sessionid来判断的;non-sticky session是由反向代理服务器根据每台服务器的负载情况来将请求转发。nginx就不知道了。
dokia123 2014-11-03
  • 打赏
  • 举报
回复
session是在服务端生成的,而sessionid就是这个session的id号。 memcached是有tomcat的session共享插件的,这种情况可能是你的tomcat+memcached集群环境没搭建好,导致session没有实现共享。
zihua2005 2014-10-28
  • 打赏
  • 举报
回复
建议通过session中的 setAttribute(名字) 来进行session识别,session同步依靠tomcat的session 同步配置 ,我不知道生产环境负载均衡下 同步是 怎么来实现的 ,有的是 通过客户ip 通过计算 固定选择 到哪个服务器去!你如果解决了 也希望分享下!
zihua2005 2014-10-28
  • 打赏
  • 举报
回复
session 其实是客户端请求到服务段 由服务端生成的,客户端 通过cookie 和服务段进行交互来进行session识别!
zihua2005 2014-10-28
  • 打赏
  • 举报
回复
引用 3 楼 sunli880127 的回复:
用MC了就不要用session了,用浏览器的cookie+mc维持会话状态就行了
Mc 是啥啊 怎么整合的 你 不能多打点字么
最勇敢的鸟 2014-10-23
  • 打赏
  • 举报
回复
用MC了就不要用session了,用浏览器的cookie+mc维持会话状态就行了
最勇敢的鸟 2014-10-23
  • 打赏
  • 举报
回复
引用 1 楼 cheqinzho 的回复:
其实是存放在内存中的--cookie
cookie与内存有什么关系?
cheqinzho 2014-10-20
  • 打赏
  • 举报
回复
其实是存放在内存中的--cookie

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧