hazelcast报错:java.lang.IllegalArgumentException: Target is this node! -> [172.24.8.3]:5701
·
1、现象
项目使用了hazelcast,双服务器,ip分别为192.168.xxx.202,192.168.xxx.203,启动报错:

配置如下:
hazelcast:
cluster-name: xxx
network:
join:
multicast:
enabled: false
# 本地开发
tcp-ip:
enabled: true
members: 192.168.xxx.202,192.168.xxx.203
member-list:
2、怎么解决
查了下,这个“Target is this node”报错是节点尝试向自身发送操作请求时,Hazelcast 检测到这种无效操作后抛出异常。因此,将配置映射成两份,避免自身向自身发送联结请求
202的服务器:
hazelcast:
cluster-name: xxx
network:
join:
multicast:
enabled: false
# 本地开发
tcp-ip:
enabled: true
members: 192.168.xxx.203
member-list:
203的服务器:
hazelcast:
cluster-name: xxx
network:
join:
multicast:
enabled: false
# 本地开发
tcp-ip:
enabled: true
members: 192.168.xxx.202
member-list:
但还是报同样的错误:Target is this node! -> [172.24.8.3]:5701backend-saasbackend-saasat
172.24.8.3这个ip引起注意,发现他是容器ip,且202服务器的容器ip和203的服务器容器ip都是172.24.8.3!!!
猜测hazelcast把容器ip作为节点判断依据,因此将两个服务器当成同一个。网上查询后发现有两种解决方法,第一个是保证容器ip唯一,要设置子网网段;第二个方法是可以将hazelcast绑定ip,避免ip重复导致冲突

加上public-address配置后顺利解决
更多推荐

所有评论(0)