报错:
Exception in thread "main" org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1468)
at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1496)
at zookeeper.SimpleZkClient.main(SimpleZkClient.java:31)
尝试解决方法:
1.关闭服务器防火墙(或放开zk端口 5672)
service iptables stop (重启失效)
chkconfig iptables off (永久有效)
因为我是虚拟机,早就关闭了防火墙,所以不是这个问题。
2.从服务器copy一份jar包到java工程中
我的jar包就是从zk安装包里copy出来的,所以不是这个问题。
3.sessionTimeout 设置不合理
zk默认的超时时间为 2*tick ~ 20*tick ,如果客户端设置不在此范围,会被强制设置为此范围。我配置的zk tick =2000,而在客户端中我也配了2000,然后就一直报上述错误。尝试更改 sessionTimeout 后,例如 10000、20000,偶尔能碰对可以连接上,但是同样的sessionTimeout 有时能成功,有时不能成功;设置为最大值 40000后,每次都能成功。 能力所限,暂不知具体原理。
希望对你有所帮助,如有准确解答请联系我。