WebLogic Server 集群内部节点间的通信主要依赖两种消息传递协议:多播(Multicast)和单播(Unicast)。理解它们的差异对于网络配置和故障排查至关重要。
多播协议(Multicast)
多播基于 UDP 协议实现,从 WebLogic Server 4.0 版本起就已支持。它利用 IP 组播地址将消息广播给组内的所有监听者。
- 地址范围:IP 地址位于 224.0.0.0 到 239.255.255.255 之间。WebLogic 默认使用 239.192.0.0,建议避免使用 x0.0.0.1 这类保留地址。
- 端口选择:遵循标准 UDP 端口范围(0-65535),但需避开系统保留端口。
- 可靠性问题:UDP 本身不保证送达。如果本地多播缓冲区溢出,新消息会被丢弃且不会通知应用层。虽然 WebLogic 在应用层构建了重传机制来弥补这一缺陷,但在高负载下仍存在理论上的丢包风险。
- 网络限制:大多数操作系统和交换机支持同子网内的 UDP 多播,但路由器通常默认禁止跨子网转发。为了控制传播范围,协议内置了生存时间(TTL)机制。每经过一个路由器,TTL 减 1,归零即停止。WebLogic 默认将 TTL 设为 1,这意味着多播消息仅能在同一局域网段内传播。
单播协议(Unicast)
单播采用点对点 TCP/IP 套接字连接,于 WebLogic Server 10.0 版本引入。相比多播,它在跨子网通信和防火墙穿透方面表现更稳定,是复杂网络环境下的推荐选择。
在实际部署中,如果网络环境不支持多播或需要跨地域集群,务必切换到单播模式并正确配置服务器列表。

