Java面试题更新 2026-08-05

在分布式事务中,防悬挂和空回滚分别指什么?请解释它们的定义、出现场景以及实现机制。

风险判断技术原理JavaSpring BootSpring Cloud

考察说明

考查对分布式事务中防悬挂和空回滚概念的理解及其在异常场景下的作用。

回答思路

  1. 【回答框架 1】防悬挂是指避免因网络超时或重试导致的事务分支被错误执行,例如在分支事务注册前收到全局回滚指令时,应拒绝执行该分支,防止悬挂事务。
  2. 【回答框架 2】空回滚是指在未实际执行分支事务的情况下,收到回滚指令时直接返回成功,避免重复回滚或错误状态,通常通过事务状态记录或唯一标识判断是否已执行。
  3. 【回答框架 3】实现机制上,防悬挂常通过检查事务状态或使用幂等控制,确保分支只执行一次;空回滚则依赖状态机或日志记录,区分已执行与未执行场景。
  4. 【回答框架 4】两者共同保障分布式事务的一致性和可靠性,尤其在网络分区或超时场景下,避免资源占用和状态不一致。
  5. 【关键点 1】防悬挂防止分支事务在全局回滚后被错误执行。
  6. 【关键点 2】空回滚确保未执行的分支事务回滚时直接成功。
  7. 【关键点 3】两者依赖状态记录和幂等机制实现。
  8. 【关键点 4】常见于TCC或Saga等分布式事务模式。
  9. 【易错点 1】防悬挂不等于幂等,需结合唯一标识和状态管理。
  10. 【易错点 2】空回滚不能无条件返回成功,需确认分支确实未执行。
  11. 【易错点 3】网络重试可能导致状态判断错误,需设计超时和补偿策略。