分布式锁方案比较

实现思路

优点

缺点

利用Mysql的实现方案(基于乐观锁)

利用数据库自身提供的锁机制实现,要求数据库支持行级锁

实现简单,稳定可靠

性能差,无法适应大量数据的高并发场景,容易出现死锁的情况;无法优雅的实现阻塞锁

利用Redis缓存的实现方案

适应Setnx和lua脚本机制实现,保存对缓存操作序列的原子性

性能好

实现相对复杂,有出现死锁的可能性,无法优雅的实现阻塞式锁

利用Zookeeper的实现方案

基于zk的节点特性以及watch机制

性能好,稳定可靠,能较好的实现阻塞式锁

实现相对复杂

Last updated