zookeeper-分布式锁
zookeeper 分布式锁原理
主要操作:获取锁则创建节点,使用完锁删除节点
具体步骤:
- 创建一个表示锁的节点 lock
- 客户端获取锁时,在lock 节点下创建临时有序节点
- 获取lock节点下的所有子节点,如果发现自己创建的节点在所有节点中序号最小则判断为获取到锁,使用完后删除节点
- 如果自己注册的节点不是最小没有获取到锁,按照顺序向比自己小的节点注册监听删除事件
- 监听到时间后重复3的操作
为什么是临时节点: 防止服务挂掉后节点一直不能删除阻塞住
主要实现的是公平锁
curator 中锁
InterProcessSemaphoreMutex:分布式排它锁(非可重入锁)
InterProcessMutex:分布式可重入排它锁
InterProcessReadWriteLock:分布式读写锁
InterProcessMultiLock: 将多个锁作为单个实体管理的容器
InterProcessSemaphoreV2:共享信号量