ZOOKEEPER分布式集群,断掉LEADER网络后出现问题

公司在用zk管理分布式集群,现在出现了一个问题,问题描述如下。

假设zk作为server端,存在三个节点,zk1(leader),zk2(follower),zk3(follower)。
然后公司的client端,也存在三个节点,C1,C2,C3。分别与ZK的节点相对应。

现存在如下问题,当断掉ZK1的网络时,C1的client无服务,这是正常现象。

此时ZK由于leader被down,重新选取leader,如果ZK2成为leader,那么c2,c3此时会向zk2读取节点数据。

但是zk2,zk3,此时正在进行同步,似乎是无法提供服务的状态,就会导致c2或者c3自杀。

现在请问各位大佬,有没有办法解决这种问题,比如zk在同步时可以感知zk对外提供服务的状态,当zk可以对外服务时再进行获取节点数据。

由于zk都是java代码,而我们用的是c++/c,所以只接触了部分的zk的相关API。还请各位大佬帮忙

1个回答

(⊙﹏⊙)我能想到的只有:重试 了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!