当前位置:   article > 正文

Zookeeper org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = Connection

Zookeeper org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = Connection

zk版本3.4.13 ,虚拟机版本CentOs7 

在虚拟机做了集群,测试抛异常

  1. Exception in thread "main" org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /test
  2. at org.apache.zookeeper.KeeperException.create(KeeperException.java:102)
  3. at org.apache.zookeeper.KeeperException.create(KeeperException.java:54)
  4. at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1221)
  5. at com.along.client.zookeeper.ZookeeperClient.main(ZookeeperClient.java:21)

上面的代码对于避免连接建立完成之前就发出ZooKeeper操作命令出现ConnectionLoss是有用的。

因为new出ZooKeeper实例时只是建立了与服务端之间的会话,此时TCP连接可能还未建立完成,如果这时发出ZooKeeper操作命令的确会出现连接丢失异常,虽然这种概率相对较小。

当客户端与服务端连接建立之后客户端会收到一个SyncConnected事件,此时将CountDownLatch减到零就可以让阻塞的主线程继续运行,再来发出ZooKeeper操作命令就不会出现连接丢失的异常了。

  1. package com.along.client.zookeeper;
  2. import org.apache.zookeeper.KeeperException;
  3. import org.apache.zook
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/386338
推荐阅读
相关标签
  

闽ICP备14008679号