关于WebLogic集群多播地址方面的问题解决

WebLogic集群依靠多播地址来探测集群节点的“心跳”,多播地址默认一般是239.139.0.0,端口7001。那不同集群的多播地址能否重复呢?答案是:一定不能重复,必须保证“多播地址+端口”的唯一性。下面列举实际应用中多播地址重复的几个问题:

假定场景:有A、B两个WebLogic集群,并且多播地址+端口设置相同。A集群中有a1、a2两个被管server;B集群中有b1、b2两个被管server。A、B集群各通过Apache转发。
案例1:
访问集群A的应用时,不时出现会话丢失现象,分析后是request所带的jsessionid找不到对应的JVM。 这个用httpWatch工具可以跟踪到jsessionid,也可以打开weblogic的apache插件日志,能够看到相应的错误。
原因:由于多播地址重复,集群A收到了集群B中节点的心跳信息,干扰了集群A的动态服务列表更新,丢失了a1或者a2的信息,使得本来转发到a1或a2节点的请求找不到相应的JVM,其实后台Session是在的。
案例2:
假定集群A和集群B的集群名称都为myCluster,本来两个集群,名称是可以相同的。但在多播地址重复的情况下,假定B集群已启动,此时启动A,可能会报出集群myCluster名称重复的ERROR信息。

下面简单说明一下,在WebLogic集群环境下,如何利用多播来检测集群环境各节点都是正常的。如下:
java -cp [color=red].:/……/server/lib/[/color]weblogic.jar weblogic.cluster.MulticastMonitor <UdpAddress> <UdpPort> <domainName> <clusterName>

说明:
<XXX>代表参数,实际输入不要写 <> 。
(1)UdpAddress:多播地址
(2)UdpPort:多播端口
(3)domainName:WebLogic domain的名称
(4)clusterName:WebLogic集群名称
(5)标注的红色字体部分根据weblogic.jar的实际路径填写。

执行:
在WebLogic集群的每台机器上都执行一下,如果正常的话,每个机器上都能收到各节点的反馈信息。

(1)假设有2台机器,每台机器上部署了2个集群节点,那在每台机器上执行都能够收到4条UDP消息(分别对应4个节点)
(2)如果收到了集群外部的UDP消息,说明和其他集群多播配置有重复,需要更改多播地址。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值