数据存储节点znode四种类型
- 持久节点
- 持久顺序节点
- 临时节点
- 临时顺序节点
获取锁
- 创建持久节点ParentLock,客户端1获取锁时在其下创建临时顺序节点Lock1
- 客户端1查找ParentLock下所有临时顺序节点,自己创建的是最靠前的获取锁
- 客户端2创建临时顺序节点Lock2
- 客户端2查找ParentLock下所有临时顺序节点,发现Lock2不是最靠前时,向比他靠前的Lock1注册Watch监听Lock1状态,进入等待状态
- 依次类推,行程等待队列
释放锁
- 客户端调用删除Lock节点命令
- 客户端崩溃,断开与Zookeeper连接,Lock节点被删除