AI LifeOS
职业发展白皮书
WP-02 · 第 3

系统设计面试框架(面向资深工程师)

一套可复用的系统设计面试解题框架:需求澄清→容量估算→接口→数据模型→高层设计→深挖→权衡,附高频组件与常见陷阱清单。

系统设计面试框架(面向资深工程师)

结论先行:系统设计面试考的不是"背架构",而是结构化沟通 + 权衡决策。面试官想看你能否把模糊需求变成可落地、可扩展、有取舍依据的设计。用固定框架,把 45 分钟走稳。

相关阅读:技术面试英语Remote / 海外求职策略转型 AI 的职业路径

0. 45 分钟时间盒

阶段时长产出
需求澄清5'功能/非功能边界
容量估算5'QPS、存储、带宽
接口 & 数据模型5'API、核心表/实体
高层架构10'组件图 + 数据流
深挖 1–2 个点15'瓶颈的具体方案
权衡 & 收尾5'取舍、演进、监控

1. 需求澄清(别急着画图)

  • 功能需求:核心用例是什么?先聚焦 1–2 个(如"发短链/取短链")。
  • 非功能需求:规模(DAU/QPS)、读写比、延迟目标、一致性要求、可用性目标。
  • 明确 Out of Scope:主动砍掉次要功能,聚焦深度。

一句话确认:"我先做 X 和 Y,先不做 Z,规模按 N 级 DAU、读多写少、强调低延迟——对吗?"

2. 容量估算(Back-of-envelope)

练熟这几个换算:

  • 1 天 ≈ 86,400 ≈ 10^5 秒。
  • QPS = 日请求数 / 10^5;峰值 ≈ 平均 × 2–5。
  • 存储 = 记录数 × 单条大小;估读/写 QPS、带宽、缓存容量。

例:1 亿 DAU、人均 10 次读 → 10^9/天 ≈ 万级 QPS,峰值几万。据此决定是否需要缓存/分片。

3. 接口 & 数据模型

  • 定义少量核心 API(REST/gRPC):入参、出参、错误。
  • 核心实体与关键索引;选 SQL 还是 NoSQL 说清理由(事务/关系 vs 海量 KV/水平扩展)。

4. 高层架构(画数据流)

标准骨架,按需增删:

Client → CDN → LB → API Gateway → Service(s)
                                     │
                     ┌───────────────┼───────────────┐
                   Cache           DB(主从/分片)     消息队列
                 (Redis)                              (Kafka)
                                                       │
                                                    异步 Worker

先画能跑通的最简版,再逐步加缓存、队列、副本。

5. 深挖(面试真正的分水岭)

面试官会挑一点让你深入。常见方向与武器:

  • 扩展性:水平扩容、无状态服务、分片/分区(一致性哈希)、读写分离。
  • 缓存:缓存策略(Cache-aside)、失效、雪崩/穿透/击穿、热点 key。
  • 数据库:主从复制、分库分表、索引、CAP 取舍、最终一致 vs 强一致。
  • 异步与削峰:消息队列、幂等消费、重试与死信、Outbox 模式。
  • 高可用:多副本、故障转移、限流/熔断/降级、超时与重试预算。
  • 一致性:分布式事务替代方案(Saga、TCC)、幂等键。

6. 高频组件速查

需求常用方案
全局唯一 IDSnowflake、号段、UUID
限流令牌桶 / 漏桶、滑动窗口
排行榜/热点Redis ZSet
全文检索倒排索引 / Elasticsearch
近实时计数HyperLogLog、Count-Min Sketch
地理临近Geohash、QuadTree
Feed/时间线推(写扩散)/拉(读扩散)/混合

7. 权衡与收尾

  • 明确讲取舍:"选最终一致换可用性,因为业务能容忍秒级延迟。"
  • 指出瓶颈与演进路径:现在够用,量再大 10× 时先动哪块。
  • 补一句可观测性:关键指标、告警、SLO。这体现资深度。

8. 常见陷阱

  • 不澄清就开画 → 做错方向。
  • 一上来堆一堆中间件炫技,却讲不清为什么。
  • 只画框图不谈数据流与失败路径。
  • 不给数字(容量、延迟)→ 决策没依据。
  • 沉默思考 → 面试是沟通题,边想边说(用英语时尤其要练,见 技术面试英语)。

小结

把框架背到肌肉记忆:澄清 → 估算 → 接口/模型 → 高层 → 深挖 → 权衡。剩下的就是用几个经典题(短链、Feed、聊天、限流、支付、通知)反复演练,直到能用英语从容主导 45 分钟。