Redisson 的看门狗机制(Watchdog Mechanism)是其实现可重入分布式锁时的一个核心特性,主要用于解决业务逻辑执行时间超过锁的过期时间(leaseTime
)而导致锁提前释放,进而引发数据不一致的问题。它是一个自动的锁续期机制。
🔍 核心问题:为什么需要看门狗?
- 分布式锁的基本要求: 获取锁时需要设置一个过期时间(
leaseTime
)。这是为了防止持有锁的客户端崩溃或网络分区后,锁永远无法释放(死锁)。 - 现实困境: 业务逻辑的执行时间往往是不可预测的。很难在获取锁时精确设置一个刚好覆盖所有可能执行时间的
leaseTime
。- 如果设置得太短:业务没执行完,锁就过期了,其他客户端可以获取到锁,导致多个客户端同时操作临界资源(数据不一致)。
- 如果设置得太长:万一持有锁的客户端真的崩溃了,其他客户端需要等待很长时间才能获取锁(系统可用性降低)。
🐕 看门狗机制如何工作?
看门狗机制巧妙地解决了这个两难问题:
-
加锁时(默认行为):
- 当你使用