1

我正在尝试将 zookeeper 实现为我在 erlang 中创建的应用程序的共享状态引擎。状态的结构如下所示:

/appRoot
        /parent1:{json}
                      /child1:{json}
                      /child2:{json}
        /parent2:{json}
                      /child1:{json}
                      /child2:{json}

我希望能够有一个方法在提供 /appRoot 及其数据时返回所有父节点。在元组列表中说 [{parent1,{json}}, {parent2:{json}}]。或者,如果向 /appRoot/parent1 提供了包含数据的子节点列表。到目前为止,我所看到的只是一种获取密钥(getChildren)然后使用密钥递归检索数据的方法。看来我应该只需打一个电话就可以做到这一点。

我目前正在使用ezk erlang 客户端库。如果有人知道更好的解决方案,那也将不胜感激。

TIA

4

1 回答 1

3

AFAIK无法在 zookeeper 有线协议中自动列出节点子节点及其数据。似乎,只有以下方法可以做到这一点:

  1. 列出所有节点子节点并监视子节点更改。
  2. 为每个子节点读取数据并监控数据变化。
  3. 在您开始遍历后更新每个子项更改的相应值。

这可以很容易地完成ezk,但我没有提供任何示例代码,因为它在很大程度上取决于您的应用程序逻辑所需的原子性保证。

于 2014-10-25T15:49:13.277 回答