模型服务连接失败
系统设计
分类
分布式系统
难度
未设置
来源数
1
更新时间
2026/03/29 15:40

答案

1:首先在Zookeeper上创建临时顺序节点Node01、Node02等 2:第二步客户端拿到加锁路径下所有创建的节点 3:判断自己的序号是否最小,如果最小的话,代表加锁成功,如果不是最小的话,就对前一个节点创建监听器 4:如果前一个节点删除,监听器就会通知客户端来准备重新获取锁 **解锁的步骤如下:** (1)判断锁是不是自己的 (2)如果是则减少加锁次数 (3)如果加锁次数等于0,则释放锁,删除掉创建的临时节点,下一个监听这个节点的客户端会感知到节点删除事件,从而重新去获取锁

相关题目(5)

分布式系统并发系统设计
分布式系统并发系统设计Redis
分布式系统系统设计
分布式系统系统设计
分布式系统系统设计MySQLRedis

元信息

审核状态: active
关联来源: 1

来源面经题(0)

这道题目前没有手动沉淀的面经题来源。

来源(1)

Java八股(分布式).md

knowledge_note
Question 14: Zookeeper如何实现分布式锁? Source answer: 1:首先在Zookeeper上创建临时顺序节点Node01、Node02等 2:第二步客户端拿到加锁路径下所有创建的节点 3:判断自己的序号是否最小,如果最小的话,代表加锁成功,如果不是最小的话,就对前一个节点创建监听器 4:如果前一个节点删除,监听器就会通知客户端来准备重新获取锁 **解锁的步骤如下:** (1)判断锁是不是自己的 (2)如果是则减少加锁次数 (3)如果加锁次数等于0,则释放锁,删除掉创建的临时节点,下一个监听这个节点的客户端会感知到节点删除事件,从而重新去获取锁 Reviewed answer: Zookeeper通常通过临时顺序节点实现分布式锁。客户端创建临时顺序节点后,判断自己是否为最小节点;若是则加锁成功,否则监听前一个节点,当前一个节点删除时再尝试获取锁。释放锁时删除自己的临时节点。