系统设计锁
- 分类
- 分布式系统
- 难度
- 未设置
- 来源数
- 1
- 更新时间
- 2026/03/29 15:40
答案
1:首先在Zookeeper上创建临时顺序节点Node01、Node02等 2:第二步客户端拿到加锁路径下所有创建的节点 3:判断自己的序号是否最小,如果最小的话,代表加锁成功,如果不是最小的话,就对前一个节点创建监听器 4:如果前一个节点删除,监听器就会通知客户端来准备重新获取锁 **解锁的步骤如下:** (1)判断锁是不是自己的 (2)如果是则减少加锁次数 (3)如果加锁次数等于0,则释放锁,删除掉创建的临时节点,下一个监听这个节点的客户端会感知到节点删除事件,从而重新去获取锁
相关题目(5)
分布式系统并发系统设计锁
分布式系统并发系统设计锁Redis
分布式系统系统设计锁
常见的限流算法有哪些?共源 1
分布式系统系统设计
常见的分布式ID方案有哪些?共源 1
分布式系统系统设计MySQLRedis
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(分布式).md
knowledge_noteQuestion 14: Zookeeper如何实现分布式锁?
Source answer: 1:首先在Zookeeper上创建临时顺序节点Node01、Node02等 2:第二步客户端拿到加锁路径下所有创建的节点 3:判断自己的序号是否最小,如果最小的话,代表加锁成功,如果不是最小的话,就对前一个节点创建监听器 4:如果前一个节点删除,监听器就会通知客户端来准备重新获取锁 **解锁的步骤如下:** (1)判断锁是不是自己的 (2)如果是则减少加锁次数 (3)如果加锁次数等于0,则释放锁,删除掉创建的临时节点,下一个监听这个节点的客户端会感知到节点删除事件,从而重新去获取锁
Reviewed answer: Zookeeper通常通过临时顺序节点实现分布式锁。客户端创建临时顺序节点后,判断自己是否为最小节点;若是则加锁成功,否则监听前一个节点,当前一个节点删除时再尝试获取锁。释放锁时删除自己的临时节点。