ERROR NetworkManager client connect error
java.net.ConnectException: Connection refused
at sun.nio.ch.Net.connect0(Native Method)
at sun.nio.ch.Net.connect(Net.java:458)
at sun.nio.ch.Net.connect(Net.java:450)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:648)
at ch.usi.da.paxos.ring.NetworkManager.connectClient(NetworkManager.java :295)
at ch.usi.da.paxos.ring.RingManager.notifyRingChanged(RingManager.java:115)
at ch.usi.da.paxos.ring.RingManager.process(RingManager.java:189)
at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.j ava:522)
at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:498)
是我从Java客户端调用Zookeeper时收到的错误。
我的zookeeper配置是
tickTime=2000
dataDir=/var/lib/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.1.200:2888:3888
server.2=192.168.1.201:2888:3888
server.3=192.168.1.202:2888:3888
我在Linux上运行这个程序,在windows上只有一个zookeeper实例,一切都运行得很好。似乎Zookeeper客户端连接到的是与服务器不同的子网
问题解决。日志含义客户端先选择ipv6接口,服务器端配置ipv4接口。之后,客户端选择计算机的全局Ip,而服务器配置为本地Ip。
在集群上禁用ipv6并将服务器配置为全局ip就可以了。