码迷,mamicode.com
首页 > 其他好文 > 详细

Zookeeper异常ConnectionLossException解决

时间:2017-05-23 19:39:20      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:技术   客户端   tar   map   ase   配置文件   http   error   cep   

项目中要求做一个将配置文件读取到zookeeper节点上的工具:

开发代码如下:

技术分享

技术分享

 

技术分享

但是当连接到远端的Zookeeper服务之后,出现了下面异常:

Exception in thread "main" org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /test
at org.apache.zookeeper.KeeperException.create(KeeperException.Java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1501)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1529)
at com.jiq.test.ZooKeeperTest.main(ZooKeeperTest.java:12)

原因:

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

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

解决方法:

将上图中注释的代码放出来就可以啦!

Zookeeper异常ConnectionLossException解决

标签:技术   客户端   tar   map   ase   配置文件   http   error   cep   

原文地址:http://www.cnblogs.com/luozhijun/p/6895435.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!