zoukankan      html  css  js  c++  java
  • 5. 监视和ZooKeeper操作

    ZooKeeper中的写入(write)操作是原子性和持久性的。 写入到大多数ZooKeeper服务器上的持久性存储中,可以保证写操作成功。 无论如何,ZooKeeper的最终一致性模型允许读取(read)ZooKeeper服务的最新状态,并且同步(sync)操作允许客户端更新ZooKeeper服务的最新状态。

    znode中的读取(read)操作(如existsgetChildrengetData)允许在其上设置监视。 另一方面,由znode的写入(write)操作触发的监视(如createdeletesetData ACL操作)并不会有监控的参与。

    以下是在znode状态更改期间可能发生的监视事件的类型:

    • NodeChildrenChanged: 一个znode的子节点被创建或删除时
    • NodeCreated:在ZooKeeper路径中创建一个znode时
    • NodeDataChanged:与znode相关的数据被更新时
    • NodeDeleted: znode在ZooKeeper路径中被删除时

    监视事件的类型取决于监视和触发监视的操作。 关于三个主要操作如何产生事件的一些关键信息如下表所示:

    操作 事件生成操作
    exists znode被创建或删除,或其数据被更新
    getChildren znode的子节点被创建或删除,或者znode本身被删除
    getData znode被删除或其数据被更新

    监视事件包括生成事件的znode的路径。 因此,客户端可以通过检查znode的路径来找到NodeCreatedNodeDeleted事件的znode创建和删除。 要发现NodeChildrenChanged事件后哪些子节点发生了变化,必须调用getChildren操作来检索新的子节点列表。 同样,为了发现NodeDataChanged事件的新数据,必须调用getData方法。

    ZooKeeper从其数据模型的角度提供了一系列的保证,并在其基础上构建了监视底层建设,从而实现了其他分布式协调原语的简单,快速和可扩展的构建:

    • Sequential consistency:这确保了客户端的更新总是以FIFO的顺序处理。
    • Atomicity:这确保更新要么成功,要么失败,不会有部分提交的情况。
    • Single system image:客户端可以看到ZooKeeper服务的相同视图,它不依赖于它所连接的系统中的哪个ZooKeeper服务器。
    • Reliability:这确保了这些更新一旦被应用就会一直存在。直到被客户端重写。
    • Timeliness:客户端的系统视图保证在一定的时间内是最新的。这被称为最终一致性。
  • 相关阅读:
    jQuery 参考手册
    jQuery 参考手册
    ASP.NET框架例举
    判断checkbox是否选中
    ajax动态添加的li不能绑定click事件
    缓存代码备用
    关于ajax伪实时动态下拉显示最新数据
    JavaScript中,格式化DateTime
    jquery判断id是否存在
    SSI-Server Side Inclued
  • 原文地址:https://www.cnblogs.com/IcanFixIt/p/7830922.html
Copyright © 2011-2022 走看看