分布式锁实现方式
1.数据库实现分布式锁
使用数据库事务中的锁如record lock来实现,通常使用悲观锁进行实现(select * … for update)
缺点:性能底,存在超时的可能
2.redis实现分布式锁
使用redis可以使用setnx来实现分布式锁
缺点:lock timeout存在并发的现象,失去了锁的意义
存在redis单点故障,引入sentinel或者cluster方案,则更加复杂引入问题更多
3.zookeeper实现分布式锁
分布式锁实现方式
1.数据库实现分布式锁
使用数据库事务中的锁如record lock来实现,通常使用悲观锁进行实现(select * … for update)
缺点:性能底,存在超时的可能
2.redis实现分布式锁
使用redis可以使用setnx来实现分布式锁
缺点:lock timeout存在并发的现象,失去了锁的意义
存在redis单点故障,引入sentinel或者cluster方案,则更加复杂引入问题更多
3.zookeeper实现分布式锁