apache-zookeeper – 跨2个zookeeper集群复制数据的最佳方法?

我在运行时有一些zookeeper集群,我的目标是将这些zk集群上的数据组合到一个单独的zookeeper集群上.

因此,将一个zk集群的整个数据和日志目录复制到另一个zk集群对我来说是不可能接近的.而且,我可能需要重新定义整个目录的路径,例如,我可能需要将zk cluster1上/ service1的数据复制到zk cluster 2上的/ c1 / service1上

目前,我正在做这项工作,写一些zk客户端代码,用zk集群1上的数据和ACL信息读取整个目录树,并将其写入zk集群2.

但是,这方面还存在一些问题:

>很难确定在复制过程中更新哪个节点.
>顺序节点可能是一个问题,我只能将其写为普通的非顺序节点,而在新集群上进一步创建顺序节点,因为顺序节点的序列号是根据父节点的Cversion信息创建的(代码看起来像这样,但似乎一些删除操作完成后,值会移动一些),因为我无法控制父节点的Cversion(可以吗?).如果Cversion小于现有顺序节点的序列号(这可能发生,因为我们将数据复制到新集群并忽略历史操作),进一步创建顺序节点可能会导致node.exist错误.

那么有没有更好的方法来实现我的目标?

最佳答案 您可以使用
zkcopy在两个zookeeper群集之间复制数据.

点赞