zookeeper实现分布式锁
2020-06-08 10:14:04 0 举报
基于zookeeper分布式锁实现原理
作者其他创作
大纲/内容
删除节点N
之所以不直接进入等待状态等待其他线程删除再唤醒,主要是考虑在第3步监听瞬间节点被删除了,这样直接进入等待的话就会无限循环等待
获取锁
开始
N节点是否最小节点
Y
N
3.监听N-1节点删除事件
2.对所有节点进行排序
并发线程
N-1节点是否被删除
4.等待
通知
执行业务代码
1.创建顺序节点N
对于监听到N-1节点删除后,为什么不直接获取锁而是还要判断一次节点节点N是否最小节点,主要是考虑有的客户端宕机,这种情况会导致zookeeper自动删除这些客户端创建的节点,假设这些被主动删除的节点更小的话,就出现问题了,故此处要再次排序并判断是否最小节点。
结束
收藏
0 条评论
下一页