各位大神好!
本人公司web应用准备迁移到新的was环境,新环境跟旧环境一样,一共4台机器,每台机器建了3台服务器,端口分别为9080,9081,9082。即一共12台服务器。在预迁移后我们进行验证,发现通过12台服务器能够正常访问,但是通过f5访问时发现经常登录不了,于是我把11台服务器停了,只留1台服务器运行,再次通过f5访问发现又正常了,最后通过分析发现原来通过f5访问的时候每次发起请求,f5都会把这些请求分发给不同的服务器。比如一开始发起登录请求分发给了服务器1,然后登录成功后发送获取菜单请求分发给了服务器2。请问这个问题是出在F5配置上还是was的配置上?先谢谢各位了
要么改程序session持久化
要么修改F5负载均衡算法
Default Persistence Profile cookie
Load Balancing Method LC
可以进行将session持久化,在用户第一次登录时将session数据保存到数据库中也可以将数据保存到memcache中,然后每次请求中的url中session ID并去memcache或数据库中去取出对应的session数据。我这个是将我以前的实际用到的说一下,这可能并不是最好的方法,但能实际使用,希望能帮到你。
另外还有一种就是会话保持-粘滞会话,IHS上可以设置,粘滞会话的作用就是当客户端的请求在第一次分发到某一个节点后,那么在一段时间内它都会被分发到这个节点上,但这样会一定程度的破坏负载均衡,就看你怎么根据应用场景调整了。另外F5也有相关的会话保持设置,你可以研究一下。
这个地址上的解释说明比较详细:
http://blog.csdn.net/jackyechina/article/details/54629913