1 主导面试过程 先把题目变成可验证的约束,再让架构回应这些约束。 5 建立答题主线 核心 一轮系统设计面试怎样完整作答 需求、约束与假设 容量估算与数量级判断 高层架构与核心数据流 深入核心组件、扩展与取舍
2 理解系统取舍 把模糊的高性能和高可用变成能计算、能验证的目标。 5 性能与规模 核心 性能、可扩展性与扩容方式 延迟、吞吐量与尾延迟 一致性与可用性 进阶 可用性、一致性、CAP 与 PACELC 弱一致、最终一致与强一致 故障切换、复制与可用性数字
3 设计请求路径 沿一次请求经过的路径,理解每一层负责什么。 5 边缘入口 核心 DNS 解析、缓存与流量切换 CDN、Push 与 Pull 负载均衡、L4/L7 与反向代理 应用边界与安全 实战 应用层、微服务与服务发现 身份、权限、数据与滥用防护
4 选择数据系统 从不变量和访问模式出发,再决定复制、分片与索引。 6 关系数据与扩展 核心 关系数据库、事务与索引 主从、主主与读副本一致性 数据库联合、分片与迁移 反范式、查询计划与 SQL 调优 NoSQL 与选型 实战 键值、文档、宽列与图数据库 SQL 与 NoSQL 怎样选择
5 控制延迟与流量 让快路径更快,也让慢路径有队列、背压和失败语义。 5 缓存 核心 客户端、CDN、Web、数据库与应用缓存 Cache-aside、Write-through、Write-behind 与 Refresh-ahead 异步与协议 实战 消息队列、任务队列与背压 TCP、UDP 与连接容量 RPC、REST 与远程失败
6 补齐现代工程能力 Primer 之外继续补足今天线上系统绕不开的工程问题。 4 故障与正确性 进阶 限流、超时、重试、熔断与负载舍弃 幂等、Outbox、Saga 与分布式锁 Quorum、共识、时钟与冲突 SLO、可观测性、RPO 与 RTO
7 完成经典系统题 每道题都从约束开始,走完数据、架构、故障与演进。 8 内容、社交与搜索 实战 设计 Pastebin 或短链接服务 设计 Twitter 时间轴与搜索 设计网页爬虫与搜索入口 设计社交网络数据结构 分析、聚合与渐进扩展 实战 设计 Mint 财务聚合服务 设计搜索查询键值缓存 设计分类销量排行 在 AWS 上从单机扩展到百万用户
8 完成面向对象题 先找不变量和变化点,再用对象职责、状态与协作表达设计。 7 数据结构设计 实战 设计 HashMap 设计 LRU Cache 设计循环数组 业务对象协作 实战 设计呼叫中心 设计扑克牌与二十一点 设计停车场 设计在线聊天服务对象