CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
可靠性与故障模式/课时/事后复盘
RawBlame
课时目录12 节

可靠性与故障模式

  1. 01故障模式是什么
  2. 02故障分类
  3. 03级联失败
  4. 04重试与退避
  5. 05超时与 deadline
  6. 06熔断与舱壁
  7. 07降级与限流
  8. 08事务与一致性
  9. 09单体 vs 微服务故障域
  10. 10SLO 与错误预算
  11. 11事后复盘
  12. 12综合练习

事后复盘

Blameless postmortem、5 Whys。

25 分钟

事后复盘

故障发生后,目标不是 追责,而是 让同类故障更难发生。Blameless Postmortem(无责复盘) 记录时间线、根因、行动项,把个人失误变成 系统改进。

学习目标

  • 掌握 postmortem 文档结构
  • 会用 5 Whys 追根因(止于可改的系统层)
  • 把复盘结论写回 SLO 与 runbook

复盘模板

## 摘要
- 影响:tracks API 不可用 23 分钟
- 用户:约 120 次 502

## 时间线(UTC+8)
14:02  磁盘 95%,MySQL 慢查询
14:05  连接池满,backend 5xx 上升
14:18  重启 backend + 清日志恢复

## 根因
磁盘满 → binlog 无法写入 → ...

## 行动项
- [ ] 磁盘告警阈值 80%(prom-alerts)
- [ ] 日志轮转策略(7 天)
- [ ] 连接池 + 超时 review

5 Whys 示例

为何 502?          → Tomcat 线程满
为何线程满?        → 等 MySQL 连接
为何连接等?        → 连接池耗尽
为何耗尽?          → 慢查询 + 长事务
为何慢查询?        → 缺索引 + 磁盘 I/O 饱和
为何 I/O 饱和?     → 日志未轮转,磁盘满  ← 可行动根因

停在 「某人粗心」 不够;要落到 监控、自动化、架构(rel-types)。

与可观测性的关系

复盘依赖 指标 + 日志 + 时间线(prom-intro)。没有监控的故障只能猜——事后补 scrape 与告警是常见 action item。

宝塔单机常见 action

故障典型 action
磁盘满logrotate、告警、备份外迁
OOMJVM 上限、swap 策略、升配
证书过期宝塔自动续期 + 提前 14 天告警
误删数据备份恢复演练、权限分离

文化要点

  • 无责:聚焦流程与系统,不攻击个人
  • 公开:团队可读的文档,新人也能学
  • 可追踪:每个 action 有 owner 与 deadline

练习

  • 用模板写一次「假想磁盘满」复盘(200 字)
  • 对「开发误删生产表」做 5 Whys(至少 4 层)
  • 列出 3 条应写入 runbook 的 CodeRoadMap 操作

小结

复盘把一次故障变成永久免疫。 下一课:综合练习。

加载本节练习…
← 上一课
SLO 与错误预算
下一课 →综合练习