zookeeper DataTree内存模型介绍及对Znode的四大特性介绍和Stat结构分析

一、 zookeeper的内存模型
 
    1. zookeeper是一个由 znode节点组成的一个树形结构
  2. 每个znode都可以做成一个subject。。。
  
 
 
3. 客户端可以监控每一个节点。(比如说在datamip添加一个子节点,客户端会接收到通知)
 
二、 znode具有那些类型
 
1. 持久性的znode
  zookeeper宕机,或者client宕机,这个znode一旦创建就不会丢失
    命令 zk:create /datamip helloworld
 
2. 顺序性的znode
  如果我创建一个znode,系统会将你的znode上面追加一个10位数编号
  命令 -s 创建顺序性znode
  先创建customer节点
       
 
  然后创建顺序性节点,可以看到系统生成的编号
 
       
 
  
3. 临时性的znode
  zookeeper宕机了,或者client在session指定的时间内没有连接server,都会被认为丢失
 
  client -> server 【tcp长连接 + session机制】
 
  如果server认为client死机,会将client以前创建的znode删除
 
  命令 -e 创建临时znode
       
  
  查询 发现有两个节点  v1 v10
  
  
  ctrl + c 退出
  
  重新开启zkCli.sh
  
  在启动发现 v10 已经没有了
       
 
  HA机制 (高可用)【方便管理 work,proxy的上下线】
 
4. 创建临时 + 顺序 节点 (后面介绍)
  create -s -e /datamip/vvv hello zk
 
三 、znode具有那些属性【stat】
  stat :
    创建事务ID,
    修改事务ID,
  命令 zk:get /datamip
  
 
  helloworld
  cZxid = 0x3                 //znode 的创建的事务ID
  ctime = Wed Mar 07 00:49:14 PST 2018      //znode创建 的时间点
  mZxid = 0x3                //znode的最后修改事务ID
  mtime = Wed Mar 07 00:49:14 PST 2018     //znode最后修改的时间
  pZxid = 0x6                   //子节点最后修改的事务ID
  cversion = 3                 //子节点修改的版本号
  dataVersion = 0                // znode的数据版本
  aclVersion = 0                     //znode acl数据版本
  ephemeralOwner = 0x0                //当前这个znode属于那个client
  dataLength = 10                 //当前znode内容的长度
  numChildren = 1                //当前znode的子节点个数
 
所谓的stat 其实就是znode的一些统计信息
 
命令 zk:set /datamip 修改属性
 
  
 
查看set后/datamip的 统计属性
 
  
 
 
 
 
 
posted @ 2018-03-07 18:09  dragon.net  阅读(1304)  评论(0编辑  收藏  举报