zk api连接超时问题 org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for

2023-03-14,,

遇到 org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for / 的问题

首先让我想到的是,zk所在服务器是开启了防火墙吗?确定防火墙没有开启后,继续从代码中查找问题,最后定位到ClientCnxn类中 SendThread线程中的startConnect() 方法。

从截图中可以看出,hosename为null,意味着addr.getHostName()获取hostname需要从InetAddress.getHostFromNameService(this, check)获取,这个获取hostname是非常耗时的,一般要20s左右

最后的解决方案:

在hosts文件中,增加一行

ip host

例如

192.168.6.100 192.168.6.100

如果是集群环境,可以多加几条ip和host

zk api连接超时问题 org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for的相关教程结束。

《zk api连接超时问题 org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for.doc》

下载本文的Word格式文档,以方便收藏与打印。