0%

分布式锁

死锁问题

获取锁的进程在锁未释放时终止,其他进程无法获取到锁,形成死锁

解决死锁问题?

原子操作设置过期时间

过期时间的两个问题
  • 未执行完key就过期,导致其他进程获取到锁:锁续期
  • 删除到其他线程的锁:设定不冲突的key值

提升redis锁性能

分段锁

比如把相同的商品的id分段

集群引发的问题

主服务器加锁,未同步到从服务器就挂掉,选举的新的主服务器没有加锁

Redis红锁方案
  • 存活的Redis服务器有一半加锁成功,才算成功
  • 实现工具:redission

JVM的STW对Redis影响

拿到锁后,JVM发生STW,锁无法续期,其他进程可以拿到锁

使用zookeeper解决
------ THEEND ------

欢迎关注我的其它发布渠道