[原创]Zookeeper相关的ConnectionLossException的解决办法

最近遇到了一个比较头疼的问题:有一个Java project中的test case在Jenkins自动nightly build的时候经常failed,有越来越频繁的趋势,但是如果在它failed之后到Jenkins上手工重新run,它有时又能成功(但还是有失败的,失败与成功的比例大概各占一半)。
而且在我的计算机(Ubuntu)上跑这个test case,它几乎从来不fail,但是在Jenkins服务器上跑,它就总是挂掉。
这种诡异的问题很恼人,经过Jenkins记下来的build log分析,觉得最有可能的原因是和Zookeeper有关,因为这个test case使用了Curator的TestingServer来模拟Zookeeper Server,而且这个test case中启动了很多的service并注册到了Curator模拟的Zookeeper Server上,而且在test case运行的过程中,还会有很多个client不断地连接到Zookeeper Server上,从中取出多个service的信息,并与它们交互,总而言之,test case的流程比较复杂。

阅读更多