解决Zookeeper集群 java.net.ConnectException: Connection refused (Connection refused)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_22067469/article/details/84678778

前言

今天在搭建Zookeeper集群启动出现异常。

异常信息

java.net.BindException: Cannot assign requested address (Bind failed)
	at java.net.PlainSocketImpl.socketBind(Native Method)
	at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
	at java.net.ServerSocket.bind(ServerSocket.java:375)
	at java.net.ServerSocket.bind(ServerSocket.java:329)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:742)
2018-12-01 14:37:22,465 [myid:3] - INFO  [QuorumPeer[myid=3]/0.0.0.0:2183:QuorumPeer@865] - LOOKING
2018-12-01 14:37:22,466 [myid:3] - INFO  [QuorumPeer[myid=3]/0.0.0.0:2183:FastLeaderElection@818] - New election. My id =  3, proposed zxid=0x0
2018-12-01 14:37:22,470 [myid:3] - WARN  [WorkerSender[myid=3]:QuorumCnxManager@588] - Cannot open channel to 1 at election address /119.29.181.129:3881
java.net.ConnectException: Connection refused (Connection refused)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:562)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:538)
	at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:452)
	at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:433)
	at java.lang.Thread.run(Thread.java:748)

问题分析

错误关键 Cannot assign requested address (Bind failed),无法分配请求地址,核心错误Connection refused (Connection refused)、,意思是连接被拒绝。

解决办法

看到其它资料说是防火墙的问题,我试着把防火墙关闭,然而并没有用。
最后找到,我的是云服务器,不能使用外网的IP连接。改成内网直接启动就OK了。
修改 zoo.cfg文件的server

IP改成内网IP
server.1=172.16.32.13:2881:3881
server.2=172.16.32.13:2882:3882
server.3=172.16.32.13:2883:3883

重新启动成功
在这里插入图片描述

总结

1、如果是云服务器,zoo.cfg里面的ip要是内网地址,不能是别名或者公网地址。
2、端口的防火墙必须开。

猜你喜欢

转载自blog.csdn.net/qq_22067469/article/details/84678778