Znode创建标准和正确使用

时间:2018-02-01 10:21:27

标签: apache-zookeeper

我刚刚开始探索Zookeeper,我对Znode的概念感到困惑,我对此有疑虑:

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

1 个答案:

答案 0 :(得分:0)

  

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

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

如果znode的概念让你感到困惑,可以将它与传统的文件系统进行比较,但有一个重要的区别:每个文件(znode)都是一个目录。所有znode的父znode都是root znode,/,就像传统的文件系统一样。

  

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

引自ZooKeeper fundamentals, deployment, and applications

  

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