Ignite集群无法建立:本地与公网节点组网超时故障求助
Ignite 3-beta1 跨公网与本地节点集群组建失败解决方案
问题定位
- 本地PC节点(node1)默认绑定了内部私有IP(192.168.99.1),向公网节点(node2)公布该IP后,node2无法访问此私有IP,导致集群握手超时
- 核心现象:
- 两个节点各自仅识别到1个服务器节点
- node2日志出现
Timeout getting GetMetadataResp from 192.168.99.1:3344 - 双节点高频打印重试日志:
sendWithRetry resp=ActionResponseImpl [result=false] from=192.168.99.1:3344 to=192.168.99.1:3344 err=null
解决方案
针对Ignite 3-beta1的网络配置特性,需分别配置绑定地址和对外公布地址,确保节点间能互相访问:
1. 本地PC节点(node1)配置
指定绑定到本地网卡IP,并将对外公布地址设置为node2可访问的公网地址(若本地无公网IP,需先做内网穿透,填穿透后的公网地址):
# node1的ignite-config.yaml配置文件 network: port: 3344 bind-address: 192.168.99.1 # 本地实际绑定的网卡IP advertise-address: [公网IP/内网穿透地址]:3344 # node2能访问到的地址
2. 公网服务器节点(node2)配置
指定绑定到公网网卡IP,对外公布地址直接用自身公网IP:
# node2的ignite-config.yaml配置文件 network: port: 3344 bind-address: [公网服务器网卡IP] advertise-address: [公网服务器IP]:3344
3. 验证步骤
- 确保node2能telnet通node1配置的
advertise-address地址和端口 - 检查两端防火墙/安全组是否开放3344端口(需同时开放TCP和UDP协议)
补充说明
Ignite 3-beta1的Netty bootstrap默认绑定所有网卡,但对外公布地址会自动取第一个识别到的本地私有IP,这是跨公网集群失败的核心原因。通过显式配置advertise-address,可以让节点对外公布正确的可访问地址,解决节点间的连接问题。
内容的提问来源于stack exchange,提问作者ron
相关产品推荐
相关产品推荐

