Skip to content

危机处理情景题 🚨

线上故障、紧急 Bug、生产事故的高分回答指南

目录


场景一:线上突然爆出严重 Bug

📌 场景描述

上线后用户大量投诉某核心功能不可用,客服群炸了,领导问你怎么处理。

🎯 面试官考察点

  • 应急响应能力:是否能快速冷静决策
  • 优先级判断:先救火还是先分析
  • 团队协调:能否调动资源快速解决
  • 复盘意识:问题解决后如何预防

✅ 高分回答

结构化总览:

我会分四步处理:先止血 → 定位问题 → 修复上线 → 复盘改进


第一步:先止血(最高优先级)

目标:减少用户影响范围,争取排查时间

具体动作:

场景止血手段
新功能导致的问题回滚到上一个稳定版本
全量影响降级开关关闭该功能
灰度阶段发现停止灰度扩量
影响部分用户评估是否需要紧急修复 vs 等排查

同步动作:

  • 通知相关方(产品、客服、领导)当前状态
  • 明确告知:"问题已知,正在处理,X 分钟后同步进展"

示例话术:

问题已经确认,我们正在紧急处理。目前先回滚到上一版本止血,预计 10 分钟内恢复,后续会同步根因分析。


第二步:快速定位问题

排查顺序(前端视角):

1. 确认影响范围
   - 全量 or 灰度?
   - 全平台 or 特定浏览器/设备?
   - 全用户 or 特定账号类型?

2. 复现问题
   - 本地能否复现?
   - 是否需要特定数据/账号?

3. 定位代码变更
   - 本次上线的 commit diff
   - 是否有依赖升级?
   - 是否有配置变更?

4. 前后端分工排查
   - 接口返回是否正常?(网络/后端问题)
   - 前端渲染逻辑是否正确?
   - 静态资源加载是否正常?

加分点:

我会先看监控埋点数据,确认错误是集中在哪个环节,避免盲目排查浪费时间。


第三步:修复上线

决策点:热修复 vs 回滚

条件选择
问题根因明确,修复简单热修复 + 紧急上线
根因不明确,影响严重先回滚,后续修复
回滚有风险(数据兼容性)热修复优先

上线流程(紧急情况):

  1. 代码修复后 必须有人 Code Review(哪怕快速)
  2. 跳过完整测试,但 核心路径必须验证
  3. 灰度放量,确认无问题后全量
  4. 上线后持续观察监控 15-30 分钟

第四步:复盘改进

复盘时间:问题解决后 24-48 小时内

复盘内容:

维度要点
直接原因具体是哪行代码/哪个配置导致的?
根本原因为什么没有在测试/灰度阶段发现?
改进措施流程、技术、监控如何改进?
责任认定对事不对人,重点是机制问题

前端侧改进措施示例:

markdown
## 技术层面
- [ ] 增加该场景的自动化测试用例
- [ ] 完善错误边界(Error Boundary)
- [ ] 加强关键路径的埋点监控

## 流程层面
- [ ] Code Review checklist 增加该类场景检查项
- [ ] 灰度策略调整(先内部 → 小流量 → 全量)
- [ ] 上线后必须有人值守观察 30 分钟

💡 收尾金句

我的目标不是"把这个 Bug 修好",而是"让这类问题不再发生"或者"发生了能更快发现和止血"。


⚠️ 常见扣分回答

错误表现问题
"我先看看代码"没有优先止血,用户还在受影响
"这个是后端的问题"先甩锅,而不是协同解决
"我不知道怎么回滚"暴露日常缺乏应急演练
"上次也这样"暴露没有复盘改进机制

场景二:上线后发现严重性能问题

📌 场景描述

新版本上线后,用户反馈页面明显变慢,首屏加载时间从 2s 变成了 8s。

🎯 面试官考察点

  • 性能问题定位能力
  • 风险评估和决策能力
  • 前端性能优化知识储备

✅ 高分回答

结构化总览:

我会分四步处理:评估影响 → 决定止血策略 → 定位性能瓶颈 → 优化并验证


第一步:评估影响和决策

快速评估:

1. 影响范围
   - 全量用户 or 部分用户?
   - 所有页面 or 特定页面?
   - 首次访问 or 每次都慢?

2. 严重程度
   - 是"慢"还是"不可用"?
   - 核心转化路径是否受影响?
   - 是否有用户流失数据?

决策矩阵:

影响程度根因是否明确决策
严重(核心功能不可用)-立即回滚
中等(明显变慢)明确热修复
中等(明显变慢)不明确回滚 + 后续排查
轻微(可接受)-排期优化

第二步:性能问题定位

定位路径(前端视角):

1. 网络层面
   ├── 资源体积是否变大?(查看打包产物)
   ├── 请求数量是否增加?
   ├── 接口响应时间是否变长?
   └── CDN 是否正常?

2. 渲染层面
   ├── 是否有大量重渲染?(React Profiler)
   ├── 是否有阻塞渲染的 JS?
   ├── 是否有 Layout Shift?
   └── 是否有内存泄漏?

3. 代码层面
   ├── 本次 diff 是否引入了重型依赖?
   ├── 是否有同步阻塞操作?
   ├── 图片/静态资源是否过大?
   └── 是否有死循环或大量计算?

快速定位工具:

工具用途
Lighthouse整体性能评分和建议
Chrome DevTools Performance运行时性能分析
Chrome DevTools Network网络请求分析
Webpack Bundle Analyzer打包体积分析
线上监控平台真实用户性能数据

第三步:常见性能问题和修复

问题类型典型原因修复方案
首屏资源过大引入了大型库、未 Tree Shaking按需加载、代码分割
接口慢后端问题、请求过多接口合并、缓存、并行请求
渲染阻塞同步 JS、CSS 阻塞async/defer、CSS 内联关键样式
重复渲染React 组件未优化useMemo、React.memo、状态下沉
图片过大未压缩、未懒加载WebP、懒加载、CDN 裁剪

第四步:复盘和预防机制

建立性能防护机制:

markdown
## CI 层面
- [ ] 打包体积监控(超过阈值阻断构建)
- [ ] Lighthouse CI(性能分数低于阈值告警)

## 发布层面
- [ ] 灰度期间监控性能指标
- [ ] 核心页面性能基线告警

## 日常规范
- [ ] 引入新依赖需要评估体积影响
- [ ] 定期性能巡检

💡 收尾金句

性能问题往往是"温水煮青蛙",我会推动建立性能基线和监控,让性能退化能被及时发现,而不是等用户投诉。


场景三:半夜收到告警 CPU 飙到 100%

📌 场景描述

凌晨 2 点收到告警,某服务 CPU 使用率飙升到 100%,影响用户访问。

🎯 面试官考察点

  • 应急响应流程
  • 问题定位思路
  • 系统全局视角

✅ 高分回答

结构化总览:

我会分三步处理:止血保可用 → 定位根因 → 修复并复盘


第一步:止血保可用

立即行动:

1. 确认影响范围
   - 哪些服务/页面受影响?
   - 用户是否已经无法访问?

2. 止血手段(按情况选择)
   - 服务扩容(增加实例数)
   - 重启服务(临时缓解)
   - 流量降级(关闭非核心功能)
   - 限流(保护核心链路)

3. 通知相关方
   - 值班人员
   - 相关负责人
   - 需要的话通知客服

第二步:定位根因

排查思路:

1. 最近有什么变更?
   ├── 代码发布?
   ├── 配置变更?
   ├── 流量突增?(运营活动/爬虫/攻击)
   └── 依赖服务异常?

2. 前端可能导致的原因
   ├── 页面死循环导致接口轰炸
   ├── 轮询频率过高
   ├── 未节流的高频操作
   └── 大量并发请求

3. 定位工具
   ├── 监控平台查看 QPS、错误率变化
   ├── 日志分析异常请求特征
   └── APM 工具查看慢查询/热点

第三步:复盘和预防

复盘内容:

  • 为什么会发生?(直接原因 + 根因)
  • 为什么没有提前发现?(监控是否覆盖?)
  • 如何预防下次?(机制改进)

预防机制:

markdown
## 监控告警
- [ ] 核心指标告警阈值是否合理?
- [ ] 告警是否能及时触达?

## 架构层面
- [ ] 是否有限流熔断机制?
- [ ] 是否有自动扩缩容?

## 发布层面
- [ ] 变更是否有观察期?
- [ ] 高峰期是否禁止发布?

场景四:生产环境数据被误操作

📌 场景描述

有人误执行了删除命令,生产环境部分数据丢失。

🎯 面试官考察点

  • 数据安全意识
  • 应急处理能力
  • 预防机制认知

✅ 高分回答

结构化总览:

我会分四步处理:确认影响 → 阻止扩散 → 恢复数据 → 建立机制


第一步:确认影响范围

1. 什么数据丢失了?
   - 表/库级别?还是部分记录?
   - 核心业务数据还是可恢复数据?

2. 影响多少用户?
   - 全量用户?还是特定用户?

3. 业务影响
   - 功能完全不可用?还是部分降级?

第二步:阻止继续扩散

1. 立即停止相关操作
   - 确认误操作的命令/脚本已停止
   - 必要时冻结相关服务写入

2. 保护现场
   - 不要急于恢复操作,避免二次破坏
   - 记录当前状态用于后续分析

第三步:数据恢复

恢复方式适用场景
从备份恢复有定期备份,数据量大
Binlog 回放MySQL,需要精确恢复
快照恢复云服务有快照机制
业务侧补偿数据可从其他来源重建

第四步:建立预防机制

markdown
## 权限管控
- [ ] 生产环境操作需要审批
- [ ] 高危操作需要二次确认
- [ ] 最小权限原则

## 技术防护
- [ ] 删除操作软删除 + 延迟清理
- [ ] 定期备份 + 验证备份可用性
- [ ] 操作审计日志

## 流程规范
- [ ] 变更操作必须有 review
- [ ] 高危操作必须双人确认

💡 收尾金句

数据是最宝贵的资产。我会推动建立"删除即软删除"的规范,以及完善的备份验证机制,让误操作的影响可控可恢复。


面试追问准备

追问要点
如果回滚也有问题怎么办?灰度回滚、数据兼容性检查、准备 plan B
如何判断要不要叫其他人?影响范围大、超出能力范围、需要决策授权
复盘会怎么开?时间线还原、不追责只追因、输出 action
怎么平衡速度和质量?核心路径必须测、非核心可简化、事后补测试

前端面试知识库