关于ZooKeeper(二) 数据模型和操作

数据模型

ZooKeeper维护着树形层次结构,树中的节点称为znode

znode用于存储数据,并维护一个ACL(访问控制列表)

主要用来实现协调服务,存储数据在1M以内

模型特征

数据访问具有原子性,不支持添加操作

通过路径引用,只能是绝对路径,只有一种表示方法

路径由Unicode字符串组成,java.lang.String类型

znode性质

短暂znode

短暂znode依赖于客户端会话,会话结束后删除短暂znode

znode类型在创建时决定且不可更改,短暂znode不能有任何子节点

主要用于特定时刻的可用分布式资源

顺序znode

父节点维护递增的计数器,命名顺序znode,唯一性,用于实现分布式锁

观察机制watch

znode发生变化时,观察机制通知客户端,观察只能出发一次,需要重新注册


操作

9个服务操作:create/delete/exists/getACL/setACL/getChildren/getData/setData/sync(同步客户端znode视图)

集合操作multi

多个基本操作写成操作单元,同时成功或失败,用于构建全局一致性的数据结构

关于API

Java/C

同步和异步,同步会阻塞,异步是事件驱动编程

观察触发器

写操作触发读操作观察

create/delete/setData->exists/getData/getChildren,ACL不参与观察


ACL

客户端验证:digest/sasl/ip

权限:READ/WRITE/CREATE/DELETE/ADMIN


猜你喜欢

转载自blog.csdn.net/weixin_42129080/article/details/80838542