标签:keep 更改 重写 子节点 包括 监控 事件 created 存在
ZooKeeper中的写入(write)操作是原子性和持久性的。 写入到大多数ZooKeeper服务器上的持久性存储中,可以保证写操作成功。 无论如何,ZooKeeper的最终一致性模型允许读取(read)ZooKeeper服务的最新状态,并且同步(sync)操作允许客户端更新ZooKeeper服务的最新状态。
znode中的读取(read)操作(如exists
,getChildren
和getData
)允许在其上设置监视。 另一方面,由znode的写入(write)操作触发的监视(如create
,delete
和setData
ACL操作)并不会有监控的参与。
以下是在znode状态更改期间可能发生的监视事件的类型:
监视事件的类型取决于监视和触发监视的操作。 关于三个主要操作如何产生事件的一些关键信息如下表所示:
操作 | 事件生成操作 |
---|---|
exists | znode被创建或删除,或其数据被更新 |
getChildren | znode的子节点被创建或删除,或者znode本身被删除 |
getData | znode被删除或其数据被更新 |
监视事件包括生成事件的znode的路径。 因此,客户端可以通过检查znode的路径来找到NodeCreated
和NodeDeleted
事件的znode创建和删除。 要发现NodeChildrenChanged
事件后哪些子节点发生了变化,必须调用getChildren
操作来检索新的子节点列表。 同样,为了发现NodeDataChanged
事件的新数据,必须调用getData
方法。
ZooKeeper从其数据模型的角度提供了一系列的保证,并在其基础上构建了监视底层建设,从而实现了其他分布式协调原语的简单,快速和可扩展的构建:
标签:keep 更改 重写 子节点 包括 监控 事件 created 存在
原文地址:http://www.cnblogs.com/IcanFixIt/p/7830922.html