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

桃扇骨 2022-04-12 05:53 760阅读 0赞

前言

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

异常信息

  1. java.net.BindException: Cannot assign requested address (Bind failed)
  2. at java.net.PlainSocketImpl.socketBind(Native Method)
  3. at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
  4. at java.net.ServerSocket.bind(ServerSocket.java:375)
  5. at java.net.ServerSocket.bind(ServerSocket.java:329)
  6. at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:742)
  7. 2018-12-01 14:37:22,465 [myid:3] - INFO [QuorumPeer[myid=3]/0.0.0.0:2183:QuorumPeer@865] - LOOKING
  8. 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
  9. 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
  10. java.net.ConnectException: Connection refused (Connection refused)
  11. at java.net.PlainSocketImpl.socketConnect(Native Method)
  12. at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
  13. at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
  14. at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
  15. at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
  16. at java.net.Socket.connect(Socket.java:589)
  17. at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:562)
  18. at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:538)
  19. at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:452)
  20. at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:433)
  21. at java.lang.Thread.run(Thread.java:748)

问题分析

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

解决办法

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

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

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

总结

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

发表评论

表情:
评论列表 (有 0 条评论,760人围观)

还没有评论,来说两句吧...

相关阅读