ZooKeeper数据存储结构

ZooKeeper节点本地存储架构

image.png

zxid

每一个对ZooKeeper data tree的更新都会作为一个事务执行。每一个事务都有一个zxid。zxid是一个64位的整数(Java long类型。zxid有两个组成部分,高4个字节保存的是epoch,低4个字节保存的
是 counter。

image.png
可以通过Zookeeper提供的zkTxnLogToolkit.sh脚本来查看事务日志文件的内容。

➜ zkTxnLogToolkit.sh log.1
/usr/bin/java
ZooKeeper Transactional Log File with dbid 0 txnlog format version 2
21-4-17 下午12时16分34秒 session 0x1002e44e66f0002 cxid 0x0 zxid 0xa createSession 30000
21-4-17 下午12时17分09秒 session 0x1002e44e66f0002 cxid 0x1 zxid 0xb error -110
21-4-17 下午12时17分45秒 session 0x1002e44e66f0001 cxid 0x0 zxid 0xc closeSession v{'/lock}
21-4-17 下午12时17分56秒 session 0x1002e44e66f0002 cxid 0x3 zxid 0xd create /lock,,[31,s{'world,'anyone}
],true,4
21-4-17 下午12时19分21秒 session 0x1002e44e66f0002 cxid 0x0 zxid 0xe closeSession v{'/lock}
21-4-17 下午12时22分49秒 session 0x1002e44e66f0003 cxid 0x0 zxid 0xf createSession 30000
21-4-17 下午12时23分45秒 session 0x1002e44e66f0003 cxid 0x1a zxid 0x10 multi delete:	/app1/p_3;delete:	/app1/p_1;delete:	/app1/p_2;delete:/app1
21-4-17 下午12时23分47秒 session 0x1002e44e66f0003 cxid 0x1c zxid 0x11 multi delete:/app2
21-4-17 下午12时24分18秒 session 0x1002e44e66f0003 cxid 0x22 zxid 0x12 create /workers,,[31,s{'world,'anyone}
],false,5
21-4-17 下午12时24分24秒 session 0x1002e44e66f0003 cxid 0x23 zxid 0x13 closeSession v{}
21-4-17 下午12时24分38秒 session 0x1002e44e66f0004 cxid 0x0 zxid 0x14 createSession 30000
21-4-17 下午12时25分09秒 session 0x1002e44e66f0004 cxid 0x1 zxid 0x15 create /master,m1:2223,[31,s{'world,'anyone}
复制代码

从日志中可以看到我们以前的各种操作记录。

快照文件查看:
通过Zookeeper提供的zkSnapShotToolkit.sh脚本来查看快照文件的内容。
zkSnapShotToolkit.sh snapshot.0

ZNode Details (count=5):
----
/
  cZxid = 0x00000000000000
  ctime = Thu Jan 01 08:00:00 CST 1970
  mZxid = 0x00000000000000
  mtime = Thu Jan 01 08:00:00 CST 1970
  pZxid = 0x00000000000000
  cversion = 0
  dataVersion = 0
  aclVersion = 0
  ephemeralOwner = 0x00000000000000
  dataLength = 0
----
/zookeeper
  cZxid = 0x00000000000000
  ctime = Thu Jan 01 08:00:00 CST 1970
  mZxid = 0x00000000000000
  mtime = Thu Jan 01 08:00:00 CST 1970
  pZxid = 0x00000000000000
  cversion = 0
  dataVersion = 0
  aclVersion = 0
  ephemeralOwner = 0x00000000000000
  dataLength = 0
----
......
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享