zookeeper客户端连接zookeeper服务器策略是什么?

"zookeeper.connect": "10.0.1.123:2181,10.0.1.124:2181,10.0.1.125:2181"
如上,zookeeper客户端,连接ZK Server,是遍历,还是轮询呢?策略是什么?
已邀请:

采菊篱下 - 无分享不快乐 助力技术开源分享 运维一枚

赞同来自: Rock

zookeeper.png

代码也很简单,就是在打乱的服务器地址列表中,不断地遍历,到头之后,再从0开始。

上面的spinDelay是个什么情况呢?

正常情况下,currentIndex先加1,然后返回currentIndex+1的地址,当该地址连接成功后会执行onConnected方法,即lastIndex = currentIndex了。然而当返回的currentIndex+1的地址连接不成功,继续尝试下一个,仍不成功,仍继续下一个,就会遇到currentIndex=lastIndex的情况,此时即轮询了一遍,仍然没有一个地址能够连接上,此时的策略就是先暂停休息休息,然后再继续。

要回复问题请先登录注册