本章进度 16 / 18
89%
正文已完成
L147重试、重放和回滚不是一回事
根据失败位置和副作用选择继续当前步骤、从检查点重放或恢复旧状态。
先用本课建立“失败恢复”的基本直觉,后面的判断和练习才不会只靠记结论。
建议按完整课程顺序先看上一课;如果术语陌生,可以随时回补。
- 无需安装新工具
- 直接阅读并完成本页理解检查
工具失败后“再来一次”可能重做已完成副作用。恢复前要知道失败发生在哪、哪些状态已持久化、动作是否幂等。
能区分三种恢复动作及其适用前提。
核心概念
先把关键判断说清楚
重试重复当前动作
适合幂等、瞬时失败且前置状态未变化的单步调用。
重放从检查点恢复
重新执行一段确定流程,要求输入版本固定且已完成副作用可去重。
回滚恢复业务状态
用备份、事务或补偿动作撤销部分结果,不能简单删除审计历史。
案例拆解
报告生成失败在最后一步
数据读取和计算已成功持久化,生成 PDF 时进程崩溃。
- 01
不重跑昂贵数据读取,直接从“已验证指标表”检查点恢复。
- 02
PDF 生成使用相同输入哈希重试,输出文件名带版本。
- 03
若旧半成品存在,标记 failed_artifact 而非伪装删除历史。
案例结果
恢复只重做必要节点,已验证数据成果得到复用。
提交前练习
现在轮到你
为三个失败场景选择重试、重放或回滚。
选做练习:本节练习可用于加速你巩固,但不影响继续学习。
内容会自动保存在当前设备
查看参考答案与评分标准
参考答案
查询超时→幂等重试;渲染崩溃→从已验证数据检查点重放渲染;错误批量更新→按变更日志执行补偿回滚并保留审计。
评分标准
- 选择与失败层匹配
- 考虑已发生副作用
- 恢复前提可验证
本课收口 · 理解检查
用 30 秒确认你理解了
用 30 秒理解检查确认你抓住了重点;阅读标记、练习和总结都不设硬门槛。
你现在更接近哪一种状态?
尚有必填项未完成,请补齐后再继续。
资料来源
继续核对与延伸阅读
本课内容最近更新于 。
- Monitoring Distributed Systems↗reference · 核对日期 2026-08-23
- Trustworthy agents in practice↗paper · 核对日期 2026-08-23