Znode 创建标准和正确使用
Znode creation criterion and proper usage
刚刚开始探索 Zookeeper ,对 Znode 的概念很困惑,我的疑惑:
- client创建znode保存数据的依据是什么,即在znode中保存数据有什么模式,而创建当前znode应该是父节点
- 每个 Zookeeper 节点(服务器)上是否存在所有 znode。
- znode 和 Zookeeper 服务器节点是如何映射的?
Q: On what basis client creates znode to save data , i.e. is there any
pattern to save data in znode, while creating which present znode
should be the parent?
这取决于客户的需求。一个有用的用例是检查组成员资格:假设您有一组服务器需要在它们之间划分一组固定的任务。例如,有 10 个任务,如果 3 个服务器处于活动状态,第一个将获得 4 个任务,其他两个将获得 3 个任务。创建一个 znode /live-servers
,并指示您的服务器在此 znode 中创建子 ephemeral znode。通过这样做,他们将表明他们还活着(这样他们就可以执行他们的任务部分)。因此,ZooKeeper 将有 znode /live-servers/server-1
、/live-servers/server-2
、/live-servers/server-3
等。这些 znode 中的每一个都可以存储一些有用的数据,例如创建子 znode 的服务器的 IP 地址。您的应用程序现在可以遍历这些 znode 的列表,找到实时服务器的 IP 地址并向它们发送任务。
如果 znode 的概念一直让您感到困惑,将其与传统文件系统进行比较,有一个重要的区别:每个文件 (znode) 同时位于一个目录中。所有 znode 的父 znode 是根 znode,/
,就像在传统文件系统中一样。
Q: Do all the znode are present on every Zookeeper Nodes(server). How znode and Zookeeper server nodes are mapped?
引用自ZooKeeper fundamentals, deployment, and applications:
The znode hierarchy is stored in memory within each of the ZooKeeper
servers.
刚刚开始探索 Zookeeper ,对 Znode 的概念很困惑,我的疑惑:
- client创建znode保存数据的依据是什么,即在znode中保存数据有什么模式,而创建当前znode应该是父节点
- 每个 Zookeeper 节点(服务器)上是否存在所有 znode。
- znode 和 Zookeeper 服务器节点是如何映射的?
Q: On what basis client creates znode to save data , i.e. is there any pattern to save data in znode, while creating which present znode should be the parent?
这取决于客户的需求。一个有用的用例是检查组成员资格:假设您有一组服务器需要在它们之间划分一组固定的任务。例如,有 10 个任务,如果 3 个服务器处于活动状态,第一个将获得 4 个任务,其他两个将获得 3 个任务。创建一个 znode /live-servers
,并指示您的服务器在此 znode 中创建子 ephemeral znode。通过这样做,他们将表明他们还活着(这样他们就可以执行他们的任务部分)。因此,ZooKeeper 将有 znode /live-servers/server-1
、/live-servers/server-2
、/live-servers/server-3
等。这些 znode 中的每一个都可以存储一些有用的数据,例如创建子 znode 的服务器的 IP 地址。您的应用程序现在可以遍历这些 znode 的列表,找到实时服务器的 IP 地址并向它们发送任务。
如果 znode 的概念一直让您感到困惑,将其与传统文件系统进行比较,有一个重要的区别:每个文件 (znode) 同时位于一个目录中。所有 znode 的父 znode 是根 znode,/
,就像在传统文件系统中一样。
Q: Do all the znode are present on every Zookeeper Nodes(server). How znode and Zookeeper server nodes are mapped?
引用自ZooKeeper fundamentals, deployment, and applications:
The znode hierarchy is stored in memory within each of the ZooKeeper servers.