四层交换负载均衡,应用服务器采用tomcat,出现的session问题?

flynn02 2008-03-12 11:08:06
我们现在采用的是多台服务器,各台服务器上有一个tomcat应用服务器,前面采用四层交换进行均衡负载,最近遇到一件怪异的事情,当有若干个用同时在线时,偶尔会出现,session互窜的现象,即A用户登录后,进行一些操作,操作过程中,用户名登录显示处会变成另外一个在线用户B,而且此时之后的操作,完全记录到了B用户操作的名下,也就是说,A用户变成了“合法的B用户”,这样给用户造成不必要损失,有人出现过类似的情况吗,我的处理session的方式是当用户登录进去之后进行session.setAttribute,理论上不应该出现这种情况的,请大家帮我出出主意!我个人认为问题应该出现在四层交换上。
...全文
132 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
flynn02 2008-03-25
  • 打赏
  • 举报
回复
谢谢大家,我们更改了四层交换的设置,情况改善了一些,我们以前也用Apache进行负载均衡的,没有出现过这个情况。只是最近使用了四层交换才有的。
PostX 2008-03-24
  • 打赏
  • 举报
回复
谁使用session都是使用那几个子API呀,你这里的问题不是出在你的使用上,而是Tomcat共享机制导致的.
PostX 2008-03-24
  • 打赏
  • 举报
回复
当使用Apache进行负载均衡时,可以在
"/apache2/conf ”目录下的“ httpd.conf ”文件,对“ ProxyPass ”项目进行如下修改。

ProxyPass / balancer://myCluster/ lbmethod=byrequests stickysession=JSESSIONID nofailover=Off

提示: 修改后添加的“ stickysession=JSESSIONID ”项就是让 Apache 负载均衡器工作在“ sticky session ”模式下。所谓“ sticky session ”模式就是对于使用到同一个 Session 的请求绑定到集群中的特定服务器上,而不是轮换访问各个服务器,这样 Session 就不会工作不正常了。当然,对于使用不同 Session 的请求,还是进行负载均衡轮换的。

单纯使用硬件做负载均衡的情况下我也不知道.
Squall1009 2008-03-12
  • 打赏
  • 举报
回复
单个tomcat肯定不会出现窜session吗?
没怎么用过tomcat的集群,tomcat有内存同步的机制吗?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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