参考答案
Zookeeper 的一致性文件系统,让锁的问题变得容易。
锁服务可以分为两类:
1. 保持独占
- 将 Zookeeper 上的一个 znode 看作是一把锁,通过 createznode的方式来实现。
- 所有客户端都去创建 /distribute_lock 节点,最终成功创建的那个客户端也即拥有了这把锁。
- 用完之后,删除掉自己创建的 distribute_lock 节点,就释放出锁。
2. 控制时序
- /distribute_lock 已经预先存在,所有客户端在它下面创建临时顺序编号目录节点,和选 master 一样,编号最小的获得锁,用完删除,依次方便。
以上,是Zookeeper面试题【Zookeeper 分布式锁】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—