【问题标题】:Znode creation criterion and proper usageZnode创建标准和正确使用
【发布时间】:2018-02-04 19:54:30
【问题描述】:

我刚开始探索Zookeeper,对Znode的概念很困惑,我的疑惑:

  • 客户端在什么基础上创建znode来保存数据,即是否有任何模式可以在znode中保存数据,同时创建哪个当前znode应该是父节点。
  • 是否所有 znode 都存在于每个 Zookeeper 节点(服务器)上。
  • znode 和 Zookeeper 服务器节点如何映射?

【问题讨论】:

  • 你对 zookeeper 的 web UI 有什么建议吗?
  • 不幸的是,不是。我经常使用命令行工具zkCli(附带 ZooKeeper 安装),到目前为止它满足了我的需求。

标签: apache-zookeeper


【解决方案1】:

问:客户端在什么基础上创建znode来保存数据,即有没有 模式将数据保存在 znode 中,同时创建当前 znode 应该是父母吗?

这取决于客户的需求。一个有用的用例是检查组成员身份:假设您有一组服务器,需要在它们之间划分一组固定的任务。例如,有 10 个任务,那么如果 3 个服务器处于活动状态,那么首先会获得 4 个任务,另外两个会获得 3 个任务。创建一个 znode /live-servers,并指示您的服务器在此 znode 中创建子 ephemeral znode。通过这样做,他们将表明他们还活着(以便他们可以执行他们的部分任务)。因此,ZooKeeper 将拥有/live-servers/server-1/live-servers/server-2/live-servers/server-3 等 znode。每个 znode 都可以存储一些有用的数据,例如创建子 znode 的服务器的 IP 地址。您的应用程序现在可以遍历这些 znode 的列表,找到实时服务器的 IP 地址并向它们发送任务。

如果 znode 的概念一直让您感到困惑,请将其与传统文件系统进行比较,有一个重要区别:每个文件(znode)同时位于一个目录中。所有 znode 的父 znode 都是根 znode,/,就像在传统文件系统中一样。

问:是否所有 znode 都存在于每个 Zookeeper 节点(服务器)上。 znode和Zookeeper服务器节点是如何映射的?

引用ZooKeeper fundamentals, deployment, and applications

znode 层次结构存储在 ZooKeeper 的 每个 内存中 服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 2011-01-28
    • 2013-01-28
    • 1970-01-01
    • 2019-03-12
    相关资源
    最近更新 更多