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

Apache zookeeper 跨2个zookeeper群集复制数据的最佳方法?,apache-zookeeper,Apache Zookeeper,我有一些zookeeper集群正在运行,我的目标是将这些zk集群上的数据合并到一个zookeeper集群上 因此,将一个zk集群的整个数据和日志目录复制到另一个zk集群对我来说是不可能的。此外,我可能需要重新设置整个目录路径的基础,例如,我可能需要将zk cluster1上/service1的数据复制到zk Cluster2上的/c1/service1 目前,我正在通过编写一些zk客户机代码来读取zk集群1上包含数据和ACL信息的整个目录树,并将其写入zk集群2 然而,这种做法仍存在一些问题:

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

因此,将一个zk集群的整个数据和日志目录复制到另一个zk集群对我来说是不可能的。此外,我可能需要重新设置整个目录路径的基础,例如,我可能需要将zk cluster1上/service1的数据复制到zk Cluster2上的/c1/service1

目前,我正在通过编写一些zk客户机代码来读取zk集群1上包含数据和ACL信息的整个目录树,并将其写入zk集群2

然而,这种做法仍存在一些问题:

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

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