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

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

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

学习

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

更多

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

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
可靠性与故障模式/课时/SLO 与错误预算
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综合练习

SLO 与错误预算

SLI/SLO、可用性目标、与 prom 衔接。

30 分钟

SLO 与错误预算

「系统要可靠」需要 可量化目标。SLO(Service Level Objective) 定义「多可靠算够」;错误预算(Error Budget) 是允许失败的那部分配额——用完就应 停功能、修稳定性。

学习目标

  • 区分 SLI、SLO、SLA
  • 为 CodeRoadMap 定义 1~2 个 SLI
  • 衔接 prom-promql 与 prom-alerts

术语

术语含义例子
SLI可测量指标成功请求比例、P99 延迟
SLO对 SLI 的目标99.9% 请求 < 500ms
SLA对客户的合同承诺违约赔偿(通常低于内部 SLO)

内部 SLO 应 严于 对外 SLA,留 buffer。

CodeRoadMap 示例 SLI

SLI-1 可用性 = 非 5xx 请求 / 总请求
SLI-2 延迟   = P99(latency) < 800ms(tracks 列表 API)

Prometheus 查询概念:

# 5xx 比例(5 分钟窗口)
sum(rate(http_server_requests_seconds_count{status=~"5.."}[5m]))
/
sum(rate(http_server_requests_seconds_count[5m]))

指标采集见 prom-spring。

错误预算

SLO 99.9% 可用 → 每月约 43 分钟可「违约」
                    │
        ┌───────────┴───────────┐
        ▼                       ▼
   预算充足                  预算耗尽
   可激进发版                冻结功能,修可靠性
   做实验                    加强 [rel-postmortem](/tracks/reliability-essentials/lessons/rel-postmortem)

宝塔单机 SLO 现实

  • 无多 AZ 冗余时,宿主维护窗口 计入预算或单独公告
  • 备份恢复 RTO/RPO 也是 可靠性目标,与可用性并列
监控栈:backend → Prometheus → Grafana → Alertmanager
                              │
                              └── SLO  burn rate 告警

与降级联动

错误预算快耗尽时,优先 降级非核心(rel-degrade),保住核心 SLI。

练习

  • 为 tracks API 写一条 SLI + SLO(含数值)
  • 计算 99.5% 月度错误预算分钟数
  • 设计一条 burn rate 告警规则思路
  • 小结

    SLO 让可靠性可度量;错误预算平衡速度与稳定。 下一课:事后复盘。

    加载本节练习…
    ← 上一课单体 vs 微服务故障域下一课 →事后复盘