zookeeper中的znode

zookeeper中的znode

ZooKeeper命名空间内部拥有一个树状的内存模型,其中各节点被称为znode。
每个znode包含一个路径和与之相关的元数据,以及该znode下关联的子节点列表。
zookeeper中的znode_第1张图片

Zookeeper目录树中每个节点对应一个Znode。每个Znode维护这一个属性,当前版本、数据版本、建立时间和修改时间等,Zookeeper就是使用这些属性来实现特殊功能的。
当一个客户端要对某个节点进行修改时,必须提供该数据的版本号,当节点数据发生变化是其版本号就会增加,这里的版本号是实现zk乐观锁的基础。

zookeeper的节点类型

节点有2个维度:是否有序和是否持久化

PERSISTENT                持久化节点

PERSISTENT_SEQUENTIAL     顺序自动编号持久化节点,这种节点会根据当前已存在的节点数自动加 1

EPHEMERAL                 临时节点, 客户端session超时、session结束这类节点就会被自动删除

EPHEMERAL_SEQUENTIAL      临时自动编号节点

znode的特性

Watches:客户端可以在节点上设置Watches(可以叫做监视器)。当节点状态发生变化时,就会触发监视器对应的操作,当监视器被触发时,ZK服务器会向客户端发送且只发送一个通知
数据访问:ZK上存储的数据需要被原子性的操作(要么修改成功要么回到原样),也是就读操作将会读取节点相关所有数据,写操作也会修改节点相关所有数据,,而且每个节点都有自己的ACL(访问控制列表)。

你可能感兴趣的:(zookeeper中的znode)