Weblogic会话cookie正在更改主服务器和辅助服务器

Bes*_*ces 5 weblogic

我们在2个托管服务器群集中设置了weblogic。请求通过负载均衡器(据说)已经配置为粘性会话。但是,我们的请求在受管节点之间被退回,好像没有配置粘性会话一样。

我注意到的一件事是JSESSIONID cookie偶尔会交换主服务器哈希和辅助服务器哈希。在用户会话的整个生命周期中,它们应保持不变。

例如,我们看到

Request 1, JSESSIONID=ABCDEFG...!SERVER1HASH!SERVER2HASH
Request 2, JSESSIONID=ABCDEFG...!SERVER2HASH!SERVER1HASH
Request 3, JSESSIONID=ABCDEFG...!SERVER1HASH!SERVER2HASH
Run Code Online (Sandbox Code Playgroud)

有时我们甚至看到哈希值设置为“ NONE”,就好像集群中的那个成员不再存在:

Request 4, JSESSIONID=ABCDEFG...!SERVER1HASH!NONE
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么主服务器和辅助服务器会这样切换?

Jos*_*seK 3

在我们过去遇到的情况中,这是负载均衡器的问题,它没有或无法识别会话与服务器 1 的粘性并将其切换到服务器 2。这种行为在流量大时更为明显。

有一次(大约 2003 年,Weblogic 6.1 上),这是因为Cluster multicast address模式为 x.0.0.1

经过与 BEA 人员进行长期调查后,发现这就是问题的根源。这导致公共 BEA 文档被更新以明确说明

请勿使用任何 x.0.0.1 多播地址,其中 x 介于 0 和 9 之间(含 0 和 9)