1、分布式锁使用数据库锁、redis锁、zk锁的对比
利用mysql的实现方案 | 利用数据库自身提供的锁机制实现,要求数据库支持行级锁; | 实现简单,稳定可靠 |
|
利用redis的实现方案 | 使用Setnx和lua脚本机制实现,保证对缓存操作序列的原子性; | 性能好
|
|
利用zookeeper的实现方案 | 基于zk的节点特性以及watch机制实现(临时顺序节点); | 性能好,稳定可靠性高,能较好的实现阻塞式锁; |
|
2、三种分布式锁的实现代码
- zookeeper的四种节点:临时、临时顺序、持久、持久顺序特点详解
- 使用mysql的主键id实现分布式锁
- 使用zookeeper临时顺序节点实现分布式锁
- 使用zookeeper临时节点实现分布式锁
- 分布式锁为什么使用zookeeper的临时顺序节点,使用临时节点带来什么问题,解决羊群效应
3、使用临时节点和临时顺序节点流程图