zk数据模型:
zk是一个树形目录服务,每一个节点都被称为ZNode,每一个节点都会保存自己的数据和节点信息
还可以拥有子节点,同时可以存储少一1M的数据
节点的四大类型:
- PERSISTENT 持久化节点 默认是持久化节点
- EPHEMERAL 临时节点 :-e
- PERSISTENT_SEQUENTIAL 持久化顺序节点 :-s
- EPHEMERAL_SEQUENTIAL 临时顺序节点 :-es
Curator 是 Apache ZooKeeper 的Java客户端库
官网:http://curator.apache.org/
Curator API 常用操作 - Watch事件监听
- ZooKeeper 允许用户在指定节点上注册一些Watcher,并且在一些特定事件触发的时候,ZooKeeper 服务端会将事件通知到感兴趣的客户端上去,该机制是 ZooKeeper 实现分布式协调服务的重要特性。
- ZooKeeper 中引入了Watcher机制来实现了发布/订阅功能能,能够让多个订阅者同时监听某一个对象,当一个对象自身状态变化时,会通知所有订阅者。
- ZooKeeper提供了三种Watcher:
- NodeCache : 只是监听某一个特定的节点
- PathChildrenCache : 监控一个ZNode的子节点.
- TreeCache : 可以监控整个树上的所有节点,类似于PathChildrenCache和NodeCache的组合
ZooKeeper分布式锁原理