Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

分布式任务怎样协调执行与恢复?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

将任务身份、触发、领取、执行状态和结果持久化,再由协调机制分配给实例,处理租约、心跳、超时与重试。Scheduled只负责本进程触发,不能自动提供全局唯一执行。即使用分布式锁,也要考虑锁过期后旧执行者仍继续运行的问题。

讲清原理

任务至少需要可识别ID、幂等业务边界和可恢复进度。租约过期后重新领取会导致重复执行机会,必要时用版本或fencing token限制旧执行者继续提交;锁不能撤销已经发生的外部副作用。

失败重试应有限且可观测,长期失败进入明确处置路径。分片规则变更、扩缩容和实例退出要与检查点协作,不能只记录“开始执行”就算任务完成。

租约过期后新版本接管,受支持资源端拒绝旧版本提交
租约过期后新版本接管,受支持资源端拒绝旧版本提交

例子与易错点

验证执行中断、租约过期、重复领取与部分提交,恢复时从已确认进度继续。方案的“只执行一次”若仅指领取日志一次,应明确范围,不能夸大为所有外部效果恰好一次。

相关题:第 11 题、第 32 题、第 45 题、第 52 题。

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。