一、Znode节点是什么

1.1、概念

  Znode节点是Zookeeper中数据模型中最小的数据单元。Zookeeper的数据模型是一颗树,由"/"进行分割路径。每个znode都会保存自己的数据内容,同时还会保存一些属性信息。zookeeper将所有的数据存储在内存中。

1.2、数据模型

  Zookeeper的视图结构类似标准的Unix文件系统,但是没有引入文件系统中目录和文件相关概念,而是使用了自己特有的数据节点的概念,称为Znode。每个Znode上都可以保存数据,同时还可以挂载子节点,也构成了一个层次化的命名空间,称之为树。

1.3、Znode节点分类

  ZooKeeper中的数据节点是有生命周期的,周期长短取决于节点类型。 ZooKeeper 将Znode节点可以分为:持久节点(PERSISTENT )、临时节点(EPHEMERAL)。同时还允许为每个节点添加一个特殊属性:顺序性(SEQUENTIAL )。具体在节点创建过程中,一般是组合使用,生成以下 4 种节点类型:

持久节点(PERSISTENT)
  指在该数据节点创建后,就一直存在与Zookeeper服务器上,直到有删除操作来主动清除这个节点。不会因为创建该节点的客户端会话失效而消失。

持久顺序节点(PERSISTENT_SEQUENTIAL)
  这类节点的基本特性和持久节点节点是一致的。额外的特性是其顺序性。在ZK中每个父节点会为他的第一级子节点维护一份顺序,用于记录每个子节点创建的先后顺序。基于这个特性,在创建子节点的时,可以设置这个属性,那么在创建节点过程中,ZK会自动在节点后面加一个整形数字。作为新的、完整的节点名。这个数字是由父节点维护的递增数字,其范围是整型的最大值。

临时节点(EPHEMERAL)
  和持久节点不同,临时节点的生命周期和客户端会话绑定。如果客户端会话失效,那么这个节点就会自动被清除掉。注意,这里提到的是会话失效,而非TCP连接断开。

临时顺序节点(EPHEMERAL_SEQUENTIAL)
  临时顺序节点的基本特性和临时节点是一致的,同样是在临时节点的基础上添加了顺序的特性。

注意:

  • 临时节点下面不能创建子节点,即临时节点只能作为叶子节点。

1.4、Znode节点状态信息

参数 说明
cZxid 创建节点时的事务Zxid
ctime 创建节点时的时间
mZxid 最后修改节点时的事务Zxid
mtime 最后修改节点时的时间
pZxid 表示该节点的子节点列表最后一次修改的事务ID,添加或删除子节点会变,修改子节点数据内容不影响此Zxid
cversion 子节点版本号,子节点每次修改版本号加1
dataversion 数据版本号,数据每次修改该版本号加1
aclversion 权限版本号,权限每次修改该版本号加1
ephemeralOwner 若此节点为临时节点,其值为节点Owner的会话ID;否则值为0
dataLength 该节点数据域长度
numChildren 该节点拥有子节点的数量

参考资料

参考书籍:从Paxos到Zookeeper:分布式一致性原理与实践

  • 作者:
    DeepInThought


    出处:
    https://www.cnblogs.com/DeepInThought


    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 【4】Zookeeper数据模型的更多相关文章

    1. Zookeeper数据模型及其应用

      Zookeeper作为分布式系统的底层协调服务有着其简单可依靠的数据模型,数据模型加之数据同步.一致性处理和可靠性,在此之上有很多经典的应用,例如,分布式锁.服务器动态上线下感知.主节点选举.数据发布 ...

    2. 3.Apache ZooKeeper数据模型

      1. ZooKeeper自下向上的服务视图 Apache ZooKeeper是分布式应用程序的协调服务. 它旨在解决分布式应用程序中与组件协调相关的棘手问题. 它通过暴露一个简单而强大的接口来实现这一 ...

    3. zookeeper系列之十—zookeeper数据模型

      团队博客:http://rdc.taobao.com/team/jm/archives/tag/zookeeper <ZooKeeper快速搭建>http://nileader.blog. ...

    4. zookeeper系列之九—zookeeper数据模型

      http://nileader.blog.51cto.com/1381108/946788 本文主要讲述了Zookeeper的数据模型,包括Zookeeper的数据视图,节点的层次结构以及节点类型等基 ...

    5. ZooKeeper 数据模型

      本文主要讲述ZooKeeper的数据模型,包括ZooKeeper的数据视图,节点的层次结构以及节点类型等基本属性.Zookeeper的视图结构类似标准的Unix文件系统,但是没有引入文件系统相关概念: ...

    6. ZooKeeper 数据模型:节点的特性与应用

      zk的基础知识基本分为三大模块 数据模型 ACL 权限控制 Watch 监控 数据模型 默认配置文件 # The number of milliseconds of each tick tickTim ...

    7. ZooKeeper数据模型

      ZooKeeper有一个分层的命名空间,类似分布式文件系统.它们唯一的区别就在于在命名空间中每个节点可以有数据关联作为它们的子节点.这就像有一个文件系统允许文件也作为文件目录.节点路径通常表示为规范的 ...

    8. 【转载】zookeeper数据模型

      [转载请注明作者和原文链接,  如有谬误, 欢迎在评论中指正. ] ZooKeeper的数据结构, 与普通的文件系统极为类似. 见下图: 图片引用自developerworks 图中的每个节点称为一个 ...

    9. ZooKeeper入门(三) ZooKeeper数据模型

      1 简述 ZooKeeper可以看成一种高可用性的文件系统,但是,它没有文件和目录,而是使用节点,称为znode. znode可以作为保存数据的容器(如同文件),也可以作为保存其他节点的容器(如同目录 ...

    随机推荐

    1. React Native使用Redux总结

      1>npm安装redux: "react-redux": "^5.0.5", "redux": "^3.7.1", ...

    2. SpringBoot: 8.整合freemarker(转)

      1.创建maven项目,添加pom依赖 <!--springboot项目依赖的父项目--> <parent> <groupId>org.springframewor ...

    3. 如何创建一个img文件并且mount 它

      https://ubuntuhak.blogspot.com/2012/10/how-to-create-format-and-mount-img-files.html

    4. 接口测试 dubbo 接口测试

      dubbo是阿里巴巴开源的一套rpc方案,以为理念很契合微服务,这几年很火,用户里面不凡京东,当当,去哪儿等大公司.rpc场景   dubbo架构   官网也提供了一个很简单实用的demo来演示dub ...

    5. 2.React 生命周期函数

      什么是生命周期函数:在某一时刻组件会自动调用执行的函数. import React,{ Component,Fragment } from 'react' class Note extends Com ...

    6. C# 关于App.config

      App.config是winfrom等程序的应用程序配置文件,用来存放一些参数. app.config只会在应用程序启动时加载一次. 当程序在运行中修改app.config中的参数是不会生效,必须要重 ...

    7. vs .net WebForm 模板添加注释

      首先说一点,好久不更新博客了.今天公司服务器不能用了,闲着没事儿,更新一篇博客. 今天要说的就是vs2010下,如何更改各种文件的模板,以省去每次新添加文件时,还得给文件添加文件标示注释等时间.很大程 ...

    8. NDK学习笔记-JNI开发流程

      JNI(Java Native Interface)Java本地化接口,Java调用C/C++,C/C++调用Java的一套API接口 实现步骤 在Java源文件中编写native方法 public ...

    9. MySQL慢查询—开启慢查询

      ###一.简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能. ###二.参数说明 slow_query_log 慢查询开启状态 ...

    10. laravel框架之自帶登錄&註冊

      //控制器層 <?php namespace App\Http\Controllers\admin; use App\Models\admin\Users; use Illuminate\Htt ...