后端岗位面试题更新 2026-08-05

当持有分布式锁的线程尚未执行完业务逻辑时,锁却已过期,如何应对这种提前失效的情况?

后端开发风险判断技术原理Redis

考察说明

考察对分布式锁过期场景的理解及处理策略。

回答思路

  1. 【回答框架 1】分布式锁通过设置过期时间防止死锁,但若业务执行时间超过过期时间,锁会被自动释放,导致其他线程获取锁并可能重复执行。
  2. 【回答框架 2】常见解决方案是使用看门狗机制定期续期,例如Redisson中通过后台线程在锁过期前自动续期,但需注意续期过程中的网络分区等风险。
  3. 【回答框架 3】另一种方案是增加锁的超时时间,但可能增加死锁风险,需根据业务耗时合理设置。
  4. 【回答框架 4】最终,即使锁过期,业务应尽量减少副作用,例如通过唯一标识或状态检查保证幂等。
  5. 【关键点 1】锁过期导致互斥失效,其他线程可获取锁。
  6. 【关键点 2】看门狗机制可自动续期,但可能导致锁被无限持有。
  7. 【关键点 3】增加超时时间需权衡业务耗时与死锁风险。
  8. 【关键点 4】处理策略后,仍需通过幂等设计兜底。
  9. 【易错点 1】认为锁过期后业务必然出错,忽略幂等兜底。
  10. 【易错点 2】过度依赖看门狗,忽略网络分区导致续期失败。
  11. 【易错点 3】把锁过期与业务超时混为一谈,未区分场景。