分布式锁“锁了个寂寞”:任务跑得比锁久,两台机器同时扣了一笔款
同一笔账被两个实例同时处理,锁明明加了。从 redis-cli 现场查锁 key 与 TTL 入手,讲清锁过期自动释放、误删他人锁、Redisson 看门狗只在不传 leaseTime 时续期、unlock 抛 IllegalMonitorStateException,以及主从切换丢锁与 Redlock 争议。
从一个关键词,发现新的思路。
同一笔账被两个实例同时处理,锁明明加了。从 redis-cli 现场查锁 key 与 TTL 入手,讲清锁过期自动释放、误删他人锁、Redisson 看门狗只在不传 leaseTime 时续期、unlock 抛 IllegalMonitorStateException,以及主从切换丢锁与 Redlock 争议。