跨2 zookeeper集群复制数据的最佳方法?

时间:2015-04-14 01:32:08

标签: apache-zookeeper

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

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

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

然而,这种接近仍然存在一些问题:

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

1 个答案:

答案 0 :(得分:2)

您可以使用zkcopy在两个zookeeper群集之间复制数据。