美文网首页
ZooKeeper之data tree

ZooKeeper之data tree

作者: 金果儿 | 来源:发表于2020-02-07 14:07 被阅读0次

    应用使用ZookKeeper客户端库使用ZooKeeper服务。
    ZK客户端负责于ZK集群交互。

    ZooKeeper数据模型

    ZK的数据模型是层次模型,常见于文件系统。
    ZooKeeper使用文件系统模型主要基于以下两点考虑:

    1. 文件系统的树形结构便于表达数据之间的层次关系
    2. 文件系统的树形结构便于为不同的应用分配独立的命名空间。

    Data tree

    这是ZooKeeper的层次模型名称。data tree的每个节点成为znode。每个节点都可以保存数据。每个节点都有一个版本号,版本从0计数。

    data tree接口

    Zookeeper对外提供一个用来访问data tree的简化文件系统API:

    • 使用UNIX风格路径名来定位znode,如/A/X表示znode A的子节点X
    • znode数据只支持全量的读取和写入(一次读取全部数据或写入全部数据)。
    • data free的所有API都是wait-free的。正在执行中的 API不会影响其他API的完成。
    • data free的API都是对文件系统的wait-free操作,不直接提供锁这样的分布式协同机制。但是data free的API可以用来实现多钟分布式协同机制。

    znode分类

    一个znode可以是持久性的,也可以是临时性的:

    1. 持久性的znode:ZooKeeper集群或客户端宕机,仍然能够找到znode。
    2. 临时性的znode:client宕机或client在指定的时间内没有给ZooKeeper集群群发消息,这样的znode就会消失(会把这个从znodedata tree删除)
      znode也可以是顺序性的,每一个顺序性的znode关联一个唯一的单调题赠整数,这个单调递增的整数是znode的名字后缀。
      如果上面两种znode具备顺序性,又有以下两种znode。
    3. 持久顺序性的znode:znode除了具备持久性的znode特点之外,znode的名字具备顺序性。
      4.临时顺序性的znode:znode除了具备临时性的znode特点之外,znode的名字具备顺序性。

    一般开发大多数用到以上四种znode。

    相关文章

      网友评论

          本文标题:ZooKeeper之data tree

          本文链接:https://www.haomeiwen.com/subject/qmumxhtx.html