项目压力模拟面试
闭卷选择一个主项目和一个备选项目,依次练习自我介绍、项目深挖、事故、演进与反问;记录原始作答,评分后重答最低分两题。
面试官执行规则
- 候选人没有结论,打断:“先说你的判断和个人职责。”
- 听到“我们做了”立即追问:“你具体做了什么?”
- 听到数字立即追问来源、时间窗和对比口径。
- 听到组件名立即追问失败窗口、替代方案和成本。
- 每个项目至少加入一次“流量 10 倍、依赖故障或数据不一致”的变化。
- 不知道可以承认,但要给推理路径和核实方法。
审核系统追问树
- 业务目标、角色和核心状态是什么?
- 你的职责边界是什么?
- 如何避免重复任务和非法状态转换?
- 机审、人审、复审冲突如何裁决?
- 规则版本和历史结果如何审计?
- 积压时先扩容还是限流,依据是什么?
- 数据不一致如何发现和修复?
- 最重要的优化/事故是什么?
- 方案为什么不是工作流引擎或另一种架构?
- 重做时最先改哪三点?
机审追问树
- 超时后重试会不会重复执行?
- 下游返回未知结果怎么办?
- 模型/规则升级如何灰度和回滚?
- 错误放行与误杀哪个成本更高,业务如何决定?
- 优先级、租户和人工队列如何治理?
- 最大积压、处理时长和容量数据从哪里来?
消息与积分追问树
- 消息成功的定义是什么?
- 如何保证重复消费不产生错误副作用?
- 积分余额和流水谁是事实来源?
- 并发扣减如何防超扣?
- 数据库成功、消息失败如何处理?
- 对账发现差错后如何补偿并保留审计?
- 如果 MQ/Redis 故障,哪些功能降级,哪些必须拒绝?
事故与行为追问
- 讲一次线上事故,事故初期做了什么?
- 哪个判断是错的,何时发现?
- 为什么监控没有提前发现?
- 你承担什么责任?
- 后续流程或技术上改变了什么?
- 与产品/其他团队有重大分歧时如何决策?
100 分评分
| 维度 | 分值 | 得分 |
|---|---|---|
| 业务理解和规模 | 12 | |
| 个人职责可信度 | 15 | |
| 技术深度 | 18 | |
| 一致性与异常处理 | 15 | |
| 指标和证据 | 12 | |
| 方案取舍 | 10 | |
| 故障与复盘 | 10 | |
| 表达和压力应对 | 8 |
红线
- 编造 QPS、收益、故障恢复时间。
- 把团队方案全部描述为个人设计。
- 只讲正常流程,不讲重复、超时、失败和补偿。
- 回答“用了 Redis/MQ 所以高性能/可靠”但没有机制。
- 事故全程归因于他人,没有个人反思。
答案与复盘
- 审核、机审、消息与积分、内容中心、性能与事故。
- ≥85 分且无红线:主项目可承受连续追问;70~84 分:补证据与取舍;低于 70 分或职责失真:重新整理项目事实。
- 记录最低分题、待核实数字、需修改的简历描述及下一次模拟重点,使用错题模板。
高级练习与专家验收
高级题
区分连接超时、整体 deadline、读超时、请求取消和 TCP 字节确认;解释半包、连接复用、HTTP 版本和容器资源限制。
专家变式
改变 DNS TTL、代理慢响应、TLS 证书轮换、丢包、连接池大小或 cgroup 配额,沿请求阶段定位排队和失败影响。比较 HTTP/2 与 HTTP/3 的传输级阻塞、部署兼容和资源成本。
面试答辩
TCP ACK 已返回但客户端没收到 HTTP 响应,远端业务状态是什么?为何 HTTP/2 多路复用仍会受同一 TCP 丢包影响?扩大连接池何时会恶化下游排队?
验收证据
请求阶段图、命令和系统观察、追踪时间线、客户端与服务端状态、重试策略及操作系统/库版本。