Cannot open channel to 2 at election address /192.168.190.131:3888java.net.ConnectException:

今天分享一个zookeeper集群连接问题的解决方法,也是困扰了我两天。

3台虚拟机启动3个zookeeper,myid分别是1,2,3,一个leader,一个follower,另一个

Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.

一直这样,无法连接。有时候是myid2无法连接,有时候是myid3无法连接,打开日志,发现如下报错

2023-05-18 22:00:48,187 [myid:3] - INFO  [QuorumPeer[myid=3](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):FastLeaderElection@919] - Notification time out: 6400
2023-05-18 22:00:48,189 [myid:3] - WARN  [WorkerSender[myid=3]:QuorumCnxManager@685] - Cannot open channel to 2 at election address /192.168.190.131:3888
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 

连接被拒绝。然后我开始逐一排除

1、防火墙已经关了

2、zoo.cfg文件配置的也没有问题

        这里的z1,z2,z3也可以换成每个虚拟机具体的ip地址。这样写是因为已经在/etc/hosts文件中配置过了。

3、myid设置的也没有问题。

4、端口也没有被占用。

5、每个zookeeper都确定启动了。

        到这,我实在想不出问题在哪了,网上去搜,搜了两天,各种方法都试过了,问题还是没有解决。唉,我发现我老是遇到一些罕见的问题,搜遍全网都解决不了的那种。后面我想,可能是网络配置出了问题,因为只有2,和3有问题,并且只启动2和3,它俩无法连接。只有1是正常的。

        /etc/sysconfig/network-scripts目录下的ifcfg.ens33,打开这个文件

ONBOOT="yes"
IPADDR=192.168.190.132
GATEWAY=192.168.190.2
DNS1=8.8.8.5
DNS2=223.5.5.1
        这一部分,这是配置该虚拟机ip地址的,除了每台虚拟机的IPADDR不能相同外,DNS1和DNS2也都不能相同,把三个虚拟机中的DNS1和DNS2都改了之后。

        service network restart        重启网络,我这里用的是CentOS7的Linux,其它版本的Linux命令可能不同。

        删掉每个ZooKeeper中,zkData目录下的 version-02和zookeeper_server.pid。

        然后启动每个ZooKeeper。

        执行    zkServer.sh status   查看状态。

 

 

 问题解决。

2025-07-31 08:37:15,754 [myid:3] - INFO [QuorumPeer[myid=3](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):QuorumPeer@1253] - LOOKING 2025-07-31 08:37:15,754 [myid:3] - INFO [LearnerCnxAcceptor-/172.16.16.14:2888:Leader$LearnerCnxAcceptor@408] - exception while shutting down acceptor: java.net.SocketException: Socket closed 2025-07-31 08:37:15,755 [myid:3] - INFO [QuorumPeer[myid=3](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):FastLeaderElection@903] - New election. My id = 3, proposed zxid=0x0 2025-07-31 08:37:15,756 [myid:3] - INFO [WorkerReceiver[myid=3]:FastLeaderElection@697] - Notification: 2 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x798 (n.round), LOOKING (n.state), 3 (n.sid), 0x0 (n.peerEPoch), LOOKING (my state)0 (n.config version) 2025-07-31 08:37:15,756 [myid:3] - INFO [WorkerReceiver[myid=3]:FastLeaderElection@697] - Notification: 2 (message format version), 3 (n.leader), 0x0 (n.zxid), 0x798 (n.round), LOOKING (n.state), 1 (n.sid), 0x0 (n.peerEPoch), LOOKING (my state)0 (n.config version) 2025-07-31 08:37:15,756 [myid:3] - WARN [QuorumConnectionThread-[myid=3]-24:QuorumCnxManager@381] - Cannot open channel to 2 at election address /172.16.16.13:3888 java.net.NoRouteToHostException: 没有到主机的路由 (Host unreachable) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) at java.net.Socket.connect(Socket.java:606) at org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:373) at org.apache.zookeeper.server.quorum.QuorumCnxManager$QuorumConnectionReqThread.run(QuorumCnxManager.java:436) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurren
08-01
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值