WebLogic 集群,根据 JSESSIONID cookie 确定节点

WebLogic 集群,根据 JSESSIONID cookie 确定节点

我们正在运行一个包含三个托管服务器(节点)的 WebLogic 10.3.4 集群。我们不使用会话粘性,而是跨集群进行会话复制,一切运行正常。然而,在尝试测试我们的 Web 应用程序时,我们会定期尝试找出用户当前位于哪个节点(以便找到正确的日志文件)。

JSESSIONIDCookie 的格式如下:

sessionid!primary_server_id!secondary_server_id

作为指定在官方 WLS 集群文档中

有没有办法根据会话 cookie 中的服务器 ID 确定当前集群节点?

我知道还有其他替代方案,例如 * 日志聚合 * 在我们的页面模板中呈现哈希值,以便进行识别,甚至可能还有其他。但如果可能的话,我希望找到一种侵入性最小的解决方案,因为对软件设置和应用程序代码的任何更改都可能很困难。

答案1

据我所知,不是直接在 Weblogic 中。

如果您有一个位于 Weblogic 集群前面的 Apache Web 服务器(或类似的代理),它会记录单个服务器 HASH 并将其映射到托管服务器,并且能够将其发送到与前一个请求相同的 Weblogic 托管服务器。

正如所描述的旧 BEA 页面,您可以启用调试日志记录:

Debug ALL
DebugConfigInfo ON
WLLogFile /tmp/wlproxy.log

日志内容样例:

Mon May 10 13:14:40 2004 getpreferredServersFromCookie: -2032354160!-457294087
Mon May 10 13:14:40 2004 GET Primary JVMID1: -2032354160
Mon May 10 13:14:40 2004 GET Secondary JVMID2: -457294087
Mon May 10 13:14:40 2004 [Found Primary]: 172.18.137.50:38625:65535
Mon May 10 13:14:40 2004 list[0].jvmid: -2032354160
Mon May 10 13:14:40 2004 secondary str: -457294087
Mon May 10 13:14:40 2004 list[1].jvmid: -457294087
Mon May 10 13:14:40 2004 secondary str: -457294087
Mon May 10 13:14:40 2004 [Found Secondary]: 172.18.137.54:38625:65535
Mon May 10 13:14:40 2004 Found 2 servers

此信息也可在 MOS 上找到;搜索文档 780007.1。

相关内容