1、是一个树形结构,类似于前端开发中的 tree.js组件;
可以说是参照linux或者unix的结构; 同样,与上面类似,另一种显示方法只是以一个路径的形式来显示:
2、zk的数据模型也可以理解为linux/unix的文件目录:/usr/local/...
3、每一个节点都称之为znode,它可以有子节点,也可以有数据。
4、每个节点可以分为临时节点和永久节点,临时节点在客户端断开之后消失。
永久节点就是一个持久化的过程。比如说一个节点存储了一些数据,只有人为的才可以删除,如果客户端session丢失或者session超时,那么他的数据还是会存在的;临时节点,也可以人为的删除,在session失效之后,那么节点的数据就会丢失。
5、每一个zk节点都有各自的版本号,可以通过命令行来显示节点信息。
6、每当节数据发生变化,那么该节点的版本号会累加
( 版本号累加可以理解为数据库里的表的乐观锁,乐观锁是控制的一个version,每当数据变化,是累加1的)
7、删除/修改过时的节点,版本号不匹配则会报错(这也是早期数据库中使用乐观锁的表现)
8、每个zk节点存储的数据不宜过大,几k即可
9、节点可以设置权限acl,可以通过权限来限制用户的访问