zk集群启动后提示:Have smaller server identifier, so dropping the connection: (3, 2)

586 阅读1分钟

错误提示

2022-08-20 16:11:21,061 [myid:2] - INFO  [WorkerSender[myid=2]:QuorumCnxManager@193] - Have smaller server identifier, so dropping the connection: (3, 2)
2022-08-20 16:11:21,063 [myid:2] - INFO  [WorkerReceiver[myid=2]:FastLeaderElection@597] - Notification: 1 (message format version), 1 (n.leader), 0x0 (n.zxid), 0x3 (n.round), LEADING (n.state), 1 (n.sid), 0x3 (n.peerEpoch) LOOKING (my state)
2022-08-20 16:11:21,582 [myid:2] - INFO  [node03/47.110.58.254:3888:QuorumCnxManager$Listener@504] - My election bind port: node03/47.110.58.254:3888
2022-08-20 16:11:21,583 [myid:2] - ERROR [node03/47.110.58.254:3888:QuorumCnxManager$Listener@517] - Exception while listening
java.net.BindException: Cannot assign requested address (Bind failed)
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:513)
        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:507)
2022-08-20 16:11:22,583 [myid:2] - INFO  [node03/47.110.58.254:3888:QuorumCnxManager$Listener@530] - Leaving listener

zookeeper集群启动后,碰到一个问题,有一台服务始终未能启动,监听不到端口,查了好多资料,都让我按照权重顺序启动,但是都没能解决(因为根本没必要按权重启动啊....) 百度上的最普遍的解决方案... image.png 这是zoo.cfg配置文件,node01和node04均启动成功 image.png

后面才发现问题的根源是在dns解析上,是服务器ip识别问题造成的,设置ip与域名的匹配时:

  • 在本机上的操作,都要设置成内网ip
  • 其它机器上的操作,要设置成外网ip

/etc/hosts 本机的映射要设置成内网ip image.png 具体参考这篇博文:blog.csdn.net/dongdong922…