线上故障标准处理流程【完整版|面试背诵+生产落地】

核心宗旨:先止血、再恢复、后复盘。线上故障第一优先级是恢复业务,不是查根因、不是改代码。

完整闭环:发现 → 定级 → 通报 → 止血恢复 → 根因定位 → 修复上线 → 数据补全 → 复盘整改

一、故障发现(被动+主动)

两类发现渠道:

  • 被动发现:用户反馈、客服上报、业务侧报错、接口超时、页面异常

  • 主动发现:监控告警(CPU/GC/接口成功率/报错率)、链路追踪告警、日志异常告警、拨测告警

关键动作:第一时间确认是否真实故障、影响范围、是否正在扩散。

二、故障定级(公司通用标准|必背)

按影响用户数、业务范围、持续时间定级,统一处理优先级:

  • P0 特级故障:核心业务全挂、全站不可用、大量用户受损、资损严重

  • P1 严重故障:核心业务降级、部分功能不可用、大量用户受影响

  • P2 一般故障:非核心功能异常、少量用户影响,主流程正常

  • P3 轻微故障:日志报错、偶发异常,无用户感知

定级决定:响应速度、是否拉紧急群、是否升级领导、是否停迭代。

三、故障通报(同步信息,避免多头排查)

故障初期信息同步,避免多人重复排查、混乱无序:

  • 拉紧急故障群:研发、测试、运维、产品、客服

  • 同步:故障现象、开始时间、影响范围、当前处理人

  • 禁止沉默排查:任何进展、卡点、猜测必须实时同步

四、核心步骤:先止血、后恢复(重中之重|面试高频)

线上铁律:恢复业务优先,不追求当场定位根因。

常用止血恢复手段(按优先级排序):

  1. 紧急降级:关闭非核心功能、限流、熔断,保住主流程

  2. 流量切换:读写分离切主、切备用集群、异地多活切换

  3. 节点摘除:下线故障节点、异常实例,避免持续报错

  4. 版本回滚:最新迭代代码导致故障,优先回滚上一个稳定版本(最快止血)

  5. 重启恢复:内存泄漏、死锁、线程耗尽,快速重启实例兜底

  6. 临时兜底方案:缓存兜底、静态页兜底、默认值兜底

止血标准:接口成功率恢复、报错率归0、用户感知消失。

五、根因定位(业务恢复后开展)

业务恢复稳定后,再深入排查真实原因,避免故障复现。

排查维度全覆盖:

  • 应用层:死锁、OOM、频繁FullGC、线程池耗尽、代码bug、空指针、循环逻辑

  • 数据库层:慢SQL、索引失效、行锁等待、连接池打满、主从延迟

  • 中间件层:Redis大key/热key、MQ堆积、ZK抖动、Nginx异常

  • 资源层:CPU飙高、内存溢出、磁盘满、网络丢包、带宽打满

  • 变更层:代码上线、配置变更、机器扩容、权限变更、依赖升级

定位方法:监控大盘 + 链路追踪 + 日志检索 + 线程栈/堆dump分析 + 变更记录比对。

六、彻底修复 & 灰度上线

  • 修复代码bug、配置错误、资源瓶颈、架构缺陷

  • 禁止直接全量发布:先灰度、小流量验证、观察监控

  • 验证回归:功能回归、性能回归、并发回归,确认无二次问题

七、数据兜底 & 损失修复

故障若导致数据异常、丢失、重复、资损:

  • 核对日志、数据库、MQ消息,校准脏数据

  • 补单、对账、回补数据、补偿业务状态

  • 统计资损范围、用户影响,做好用户安抚

八、故障复盘(闭环关键|面试必考)

故障恢复后,必须复盘,杜绝重复踩坑,采用 5Why分析法 深挖根因。

复盘报告核心内容

  • 故障基本信息:时间、现象、定级、影响范围、持续时长

  • 故障过程:发现、通报、止血、恢复、定位完整时间线

  • 直接原因:表面问题(如新增SQL无索引、代码死循环)

  • 根本原因:流程/规范/架构漏洞(如上线无灰度、无SQL审核、无压测)

  • 改进方案:代码、流程、监控、架构四层整改

  • 责任人、整改截止时间、验收标准

三类整改措施(必背)

  • 短期止血:临时修复、配置优化、降级限流兜底

  • 中期优化:代码重构、SQL优化、资源扩容、补齐监控

  • 长期规范:完善上线流程、CR规范、压测规范、告警体系

九、线上故障三大铁律(面试绝杀句)

  1. 恢复大于一切:先止血恢复业务,再查根因,绝不原地死磕排查

  2. 所有故障必须复盘:无复盘不结束,无改进不闭环

  3. 故障可预防、可兜底、可快速恢复,杜绝低级重复故障

十、高频面试深挖问答

Q1:线上故障为什么优先回滚,而不是现场修复?

回滚是最快、最安全的止血方式,能立刻恢复业务;现场修复耗时久、不确定性高,容易引入二次bug,扩大故障影响。

Q2:故障处理最大的禁忌是什么?

沉默排查、盲目改代码、不通报、不降级、不回滚、耗时死磕根因,导致故障持续扩散。

Q3:怎么避免同类故障重复发生?

通过复盘找到流程漏洞,补齐监控告警、完善CR审核、上线灰度、压测覆盖、增加兜底降级策略,固化规范流程。

Q4:偶发难复现故障怎么处理?

优先加详细日志、链路埋点、监控指标,缩小排查范围;增加兜底容错逻辑,先保业务稳定,等待故障复现定位根因。

一句话终极背诵总结

线上故障遵循先止血恢复、后定位根因、最终复盘闭环;优先降级、限流、回滚、节点切换快速保业务,通过监控日志定位问题,修复后补齐数据损失,复盘深挖根本漏洞,从代码、监控、流程、架构四层优化,杜绝重复故障。

相关推荐
yuanxi20044 分钟前
青海共和百万千瓦光伏光热项目并网发电:大客户销售如何用价值力抓住能源大单
大数据·职场和发展·能源·创业创新·学习方法
殷色玫瑰1 小时前
C++入门基础复习:从命名空间到引用与nullptr,一篇重新捡回C++基础
java·开发语言·c++
大侠归来2 小时前
C语言素数判断:从入门到进阶
java·c语言·算法
谢亮_vipxieliang2 小时前
Spring Boot 自动配置原理:从 @SpringBootApplication 到自定义 Starter
java·spring boot·后端
朝朝辞暮i2 小时前
C++ 第 25 课:getter / setter + this
java·javascript·c++
蜗牛互联网2 小时前
Python接入Gemini 3.8 Flash实现票据视觉抽取与规则校验
java·javascript·网络·人工智能·python
浪浪山_大橙子2 小时前
公司里的 AI,终于不只会聊天:我用 GPT‑6 把企业工作伙伴开源了
前端·后端·面试
用户094248568033 小时前
第22章:JIT编译分层——Interpreter、C1、C2与热点探测
java·jvm
周杰偷奶茶3 小时前
【JavaSE】类和对象基础
java·开发语言