分布式锁方案比较
实现思路
优点
缺点
利用Mysql的实现方案(基于乐观锁)
利用数据库自身提供的锁机制实现,要求数据库支持行级锁
实现简单,稳定可靠
性能差,无法适应大量数据的高并发场景,容易出现死锁的情况;无法优雅的实现阻塞锁
利用Redis缓存的实现方案
适应Setnx和lua脚本机制实现,保存对缓存操作序列的原子性
性能好
实现相对复杂,有出现死锁的可能性,无法优雅的实现阻塞式锁
利用Zookeeper的实现方案
基于zk的节点特性以及watch机制
性能好,稳定可靠,能较好的实现阻塞式锁
实现相对复杂
Last updated
Was this helpful?