Redisson是怎样解决分布式锁的里面的坑

DBC 1.8K 0

简介:redisson解决分布式锁里面的坑

  • 问题 : Redis锁的过期时间小于业务的执行时间该如何续期?
    • watch dog看门狗机制
温馨提示

负责储存这个分布式锁的Redisson节点宕机以后,而且这个锁正好处于锁住的状态时,这个锁会出现锁死的状态。或者业务执行时间过长导致锁过期,

为了避免这种情况的发生,Redisson内部提供了一个监控锁的看门狗,它的作用是在Redisson实例被关闭前,不断的延长锁的有效期。

Redisson中客户端一旦加锁成功,就会启动一个watch dog看门狗。watch dog是一个后台线程,会每隔10秒检查一下,如果客户端还持有锁key,那么就会不断的延长锁key的生存时间


默认情况下,看门狗的检查锁的超时时间是30秒钟,也可以通过修改Config.lockWatchdogTimeout来另行指定

指定加锁时间
// 加锁以后10秒钟自动解锁
// 无需调用unlock方法手动解锁
lock.lock(10, TimeUnit.SECONDS);
​
// 尝试加锁,最多等待100秒,上锁以后10秒自动解锁
boolean res = lock.tryLock(100, 10, TimeUnit.SECONDS);
​
if (res) {
   try {
     ...
   } finally {
       lock.unlock();
   }
}
温馨提示

这里我们需要知道的是看门狗

发表评论 取消回复
表情 图片 链接 代码

分享