[toc]
Zookeeper是如何实现分布式锁的
标签 : Zookeeper 分布式
实现分布式锁要考虑的重要问题
1. 三个核心要素
2. 三个问题
什么是临时顺序节点
1. 持久节点(Persistent)
2. 持久顺序节点(Persistent Sequential)
3. 临时节点(Ephemeral)
4. 临时顺序节点(Ephemeral Sequential)
Zookeeper实现分布式锁的原理
1. 获取锁
2. 释放锁
2.1 任务完成, 客户端显示释放
2.2 任务执行过程中, 客户端崩溃
3. 获得锁
总结
Zookeeper和Redis分布式锁的比较
Zookeeper | 1.有封装好的框架,容易实现. 2.有等待锁的机制( Watcher ),可以提高抢锁的效率,好处多多 | 添加和删除节点的性能比较低 |
Redis | Set 和Del 的性能比较高(毕竟键值数据库,Hash) | 1.实现复杂,需要考虑原子性,误删等情况. 2.没有等待锁的机制,只能通过客户端的自旋来等锁,效率低下. |
9: https://www.funtl.com/assets/Lusifer2018101900098]: //bbsmax.ikafan.com/static/L3Byb3h5L2h0dHBzL3d3dy5mdW50bC5jb20vYXNzZXRzL0x1c2lmZXIyMDE4MTAxOTAwMDgucG5n.jpg