在一个 Spring 事务注解的方法中获取分布式锁,若在事务提交前提前释放锁,可能带来什么问题?应如何正确设计锁与事务的边界?
考察说明
考察分布式锁与数据库事务一致性边界的设计能力
回答思路
- 指出提前释放锁导致并发事务读取未提交数据或重复执行的风险
- 说明锁释放与事务提交之间的竞态条件
- 提出正确的加锁与释放位置,例如在事务外获取锁、事务成功提交后再释放
- 讨论锁内执行事务会延长锁持有时间,影响并发性能
- 考虑使用显式事务边界或钩子机制(如 TransactionSynchronization)保证释放时机
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。