相关疑难解决方法(0)

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

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

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

目前,我正在通过编写一些 zk 客户端代码来读取 zk 集群 1 上的整个目录树以及 zk 集群 1 上的数据和 ACL 信息并将其写入 zk 集群 2 来完成这项工作。

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

  1. 很难确定在复制过程中更新了哪个节点。
  2. 顺序节点可能是一个问题,我只能将其写为普通的非顺序节点,而为了在新集群上进一步创建顺序节点,因为顺序节点的序列号是根据父节点的版本信息创建的(代码如下这个,但似乎如果执行了某些删除操作,该值会发生一些变化),因为我无法控制父节点的 Cversion(可以吗?)。如果 Cversion 小于现有顺序节点的序列号(这种情况可能会发生,因为我们将数据复制到新集群并忽略历史操作),进一步创建顺序节点可能会导致 node.exist 错误。

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

apache-zookeeper

5
推荐指数
1
解决办法
3237
查看次数

标签 统计

apache-zookeeper ×1