微服务稳定性工程师面试宝典 - 第3节

一、知识结构表格:SLA / SLO / SLI 与故障等级

术语全称核心定义常见指标关系
SLIService Level Indicator实际服务质量的量化指标请求延迟、错误率、吞吐量底层数据
SLOService Level Objective对 SLI 的目标阈值承诺99.9% 请求 <200ms内部改进目标
SLAService Level Agreement对外与客户签订的正式协议99.99% 可用性(含赔偿)基于 SLO 的承诺
故障等级—按影响范围 / 紧急程度分级P0(核心宕机)~ P4(轻微问题)决定响应时效 & 升级路径

二、回答框架图

稳定性 & 高可用 ① 定义三要素 ② 故障等级划分 ③ 冗余设计 SLI(指标) SLO(目标) SLA(协议) P0~P4 分级 响应 SLA 升级流程 多AZ部署 主备 / 冷备 流量调度

三、高频面试问答卡片

Q1:请解释 SLA、SLO、SLI 的区别与联系。

考察点:
  • 是否理解指标-目标-承诺分层逻辑
  • 能否举例说明实际应用
  • 是否知道 SLA 通常附带赔偿条款

回答框架:

  1. 先一句话定性:三个词构成“数据→目标→协议”的金字塔。
  2. 逐一解释:SLI 是原始指标(如延迟 P99),SLO 是内部可接受阈值(P99 ≤ 200ms),SLA 是给客户的书面承诺且含惩罚。
  3. 强调 SLA 基于 SLO 设定,通常比 SLO 更宽松(留缓冲)。
  4. 举例:支付系统 SLI=成功率,SLO=99.95%,SLA=99.9%。

示例回答:(90字)
SLI是服务实际测量指标,如请求延迟P99;SLO是基于SLI设定的内部目标(50ms);SLA是对外契约,通常比SLO宽松并含补偿。比如缓存系统SLI=命中率,SLO≥99%,SLA=98.5%,超出需赔偿。

可能追问:“如果SLI长期达标但SLA违约,可能是什么原因?” “SLA中常见的可用性计算公式是什么?”

避坑提醒:切勿混淆三者的范围!SLA是法律条款,SLO是技术承诺;回答时务必带上“赔偿”关键词,体现工程伦理认知。

Q2:你们公司如何划分故障等级?你如何向面试官介绍 P0~P4 的分级标准?

考察点:
  • 是否有实际故障管理经验
  • 分级是否合理(关注影响面而非技术复杂度)
  • 是否了解每个等级的响应时效

回答框架:

  1. 先明确故障等级依据:用户感知 + 业务金流 + 数据一致性。
  2. 给出典型定义:P0=核心服务不可用 & 影响大量用户;P1=部分功能失灵但可降级;P2=非核心功能受影响;P3/P4=轻微异常或监控告警。
  3. 对应响应时间:P0 5min 内上线,P1 15min,P2 30min,P3/P4 可下个迭代修复。
  4. 举一个你在实际项目中参与分级的案例。

示例回答:(85字)
我们以用户影响广度+资损定义P0(全链路宕机5min响应),P1为单模块降级(15min),P2为小功能失效(30min)。例如订单系统库存接口超时算P1,因为下单流程受阻但可降级为排队。

可能追问:“P0和P1边界模糊时如何处理?” “故障等级和On-call人员如何对应?”

避坑提醒:避免按“代码bug多少”或“恢复难度”定级;一定要以“用户/资金影响”为第一标准。面试官期待看到你的“产品意识”。

Q3:在微服务架构中,你会如何设计冗余来保障高可用?有哪些具体策略?

考察点:
  • 是否有实际的多活/多AZ部署经验
  • 是否考虑成本与复杂度的权衡
  • 是否知道蓝色/绿色发布、熔断与限流配合冗余

回答框架:

  1. 先点明冗余的本质:消除单点 + 快速切换。
  2. 列举三种常见维度:部署冗余(多AZ/多Region)、服务冗余(主备/集群)、数据冗余(主从/分布式存储)。
  3. 强调流量调度策略:DNS、负载均衡、一致性Hash + 健康检查。
  4. 提到成本控制:冷备 vs 温备 vs 热备的选择。

示例回答:(95字)
我会优先做多AZ部署:核心服务在az1/az2各一套,通过DNS流量切换;数据层用Redis Cluster跨AZ主从同步。同时配合Hystrix熔断避免雪崩,红色/绿色发布验证冗余有效性。冷备适合非关键服务,热备用于支付等强一致场景。

可能追问:“如何保证跨AZ数据最终一致性?” “冗余和分布式事务如何平衡?”

避坑提醒:不要只堆概念“多副本”“主备”,要说出落地细节——如健康检查频率、切换时间、数据丢失容忍度。面试官想看你的工程判断力。

四、自查复习清单

  • ✅ 能脱口而出SLI → SLO → SLA递进关系,并写出一条SLA条款(含赔偿比例)。
  • ✅ 能画出常见故障等级树(P0~P4),并对应响应时效与升级路径。
  • ✅ 能说出至少3种冗余设计模式及其适用场景(冷备、温备、热备,多AZ,多集群)。
  • ✅ 能解释“冗余不是万能的”——一致性、成本、复杂性如何权衡。