分类原则:每道题只保留一个主类型,按面试中占比最高的作答方式判定。Go、MySQL、Redis、MQ 等属于知识域,不再作为题型。

题型英文标签判断标准
原理问答题Concepts & Internals解释概念、机制、执行过程与适用边界
选型与权衡题Trade-off Analysis比较多个方案,结合约束给出选择与取舍
编码与算法题Coding & Algorithms需要算法、数据结构、伪代码或代码,并分析复杂度与边界
故障排查题Troubleshooting已出现异常,要求止损、建立证据链并定位根因
性能与容量题Performance & Capacity提速、降耗、消除长尾,或估算并发、吞吐与资源
专项设计题Focused Design设计边界明确的机制、流程或局部工程能力
系统设计题System Design从零设计完整系统、平台、框架或多组件子系统
工程实践题Engineering Practice围绕风险清单、预防、检测、响应与复盘形成工程闭环

存在交叉时,按以下顺序确定主类型:

  1. 明确要求编写算法、数据结构、伪代码或可运行代码,归为编码与算法题。
  2. 已经发生异常且原因未知,需要止损、建立证据链并定位根因,归为故障排查题。
  3. 瓶颈或目标基本明确,重点是提速、降耗、消除长尾或估算资源,归为性能与容量题。
  4. 给出多个候选方案,要求结合约束进行选择,归为选型与权衡题。
  5. 设计边界明确的机制、流程或单项能力,归为专项设计题;设计包含多个独立组件、数据模型和高可用架构的完整系统,归为系统设计题。
  6. 重点覆盖预防、检测、响应、演练和复盘等完整生命周期,归为工程实践题。
  7. 不属于以上场景,主要解释概念、机制、执行过程和适用边界,归为原理问答题。

P0:必刷,优先掌握

原题号整理后的题目题型优先级
设计一个 RPC 框架,你会怎么设计?系统设计题P0
如何设计一个秒杀系统?系统设计题P0
设计一个消息队列,你会怎么设计?系统设计题P0
MQ 应该 Push 还是 Pull?两种模式有什么优缺点?选型与权衡题P0
数据库、Redis 和 ZooKeeper 实现分布式锁各有什么取舍?在不同一致性、可用性和性能要求下如何选择?选型与权衡题P0
如何设计一个分布式 ID 生成器?专项设计题P0
什么是限流?有哪些限流算法?如何实现?原理问答题P0
Go: Go map 为什么不支持并发读写?并发读写可能产生什么后果?原理问答题P0
一个接口突然变慢,完整排查路径是什么?故障排查题P0
单体系统 QPS 已到 1 万,是否应该拆微服务?如何判断?选型与权衡题P0
系统每天固定时段瘫痪约一小时,如何定位?故障排查题P0
线上 Go 服务 CPU 飙高如何排查?故障排查题P0
Linux CPU Load 飙高如何排查?故障排查题P0
服务上线后接口响应很慢,如何定位并解决?故障排查题P0
订单取消的一瞬间用户正好支付成功,怎么处理?专项设计题P0
如何避免用户重复创建未支付订单并占用库存?专项设计题P0
Redis 服务器 CPU 飙高且请求延迟上升,如何排查和解决?故障排查题P0
同一订单同时通过微信和支付宝支付,怎么保证只成功一次?专项设计题P0
微服务 RPC 超时时间应该如何设置?选型与权衡题P0
从网关到多个后端服务,RPC Timeout 如何分配?专项设计题P0
线上数据库连接池耗尽 / 爆满如何排查?故障排查题P0
42如何实现数据库不停服迁移?专项设计题P0
43MySQL SQL 调优的完整方法是什么?性能与容量题P0
44MySQL 深度分页怎么解决?性能与容量题P0
45使用了索引为什么 SQL 仍然慢?如何判断索引是否有效?故障排查题P0
49如何事先设计 MQ 故障时的降级和兜底机制?专项设计题P0
51Go: 如何分析 Go 服务当前内存占用?OOM 后如何使用 pprof 等工具分析?故障排查题P0
52Redis 内存溢出 / 耗尽了,如何排查和解决?故障排查题P0
56使用分布式锁后并发度下降,应该怎么办?性能与容量题P0
62如何设计订单超时自动取消?专项设计题P0
63调用第三方 API 时要考虑哪些问题?工程实践题P0
65MySQL 2000 万数据,Redis 只缓存 20 万,如何保证留下的是热点数据?专项设计题P0
66一个请求横跨十几个微服务且很慢,如何定位?故障排查题P0
67Redis 被用来抗高并发时,如何设计高可用和降级机制,使 Redis 故障后系统仍能运行?专项设计题P0
68微服务之间怎么自动发现彼此?服务发现原理是什么?原理问答题P0
69暂时不分库分表,单表数据量很大还能怎么优化?性能与容量题P0
70Go: Go 进程 RSS 持续上涨,但 Heap 指标变化不大,可能是什么原因?故障排查题P0
72本地操作 A + 远程操作 B,如何保证事务一致性?专项设计题P0
73单体应用多机部署后,用户登录态如何共享?专项设计题P0
80核心系统如何进行缓存预热?专项设计题P0
82服务重启后大量客户端同时重连,如何避免重连风暴?专项设计题P0
87JWT 被盗后攻击者就能登录,如何保证 Token 安全?专项设计题P0
89线上 API 遭遇恶意刷流量怎么处理?故障排查题P0
92一个新系统上线时应该重点监控哪些指标?工程实践题P0
94注册接口被攻击,攻击者伪造手机号大量发送验证码,除了限流还能怎么办?专项设计题P0
95MySQL 大表在线新增字段,如何尽量不影响线上读写?工程实践题P0
100分布式订单系统调用限流 100 QPS 的支付接口,既要 FIFO 又要吃满配额,如何设计?专项设计题P0
101MySQL 1 亿行数据如何快速添加索引?性能与容量题P0
103电商订单数据如何同步到数仓,保证准确且高性能?系统设计题P0
104如何设计 MySQL → 数据仓库实时同步系统?系统设计题P0
105如何设计高可用数据同步系统?需要哪些容错机制?系统设计题P0
106LIMIT OFFSET 分页同步数据为什么会丢数据?如何解决?原理问答题P0
108双十一期间,数据同步消息持续堆积并已经影响同步时效,你会如何排查、止损和恢复?事后如何避免再次发生?故障排查题P0
109MQ 同步订单状态时消息乱序,怎么保证顺序?专项设计题P0
110数据同步任务执行一半失败,如何保证数据一致性?专项设计题P0
111如何设计 API Gateway?动态路由、限流等核心能力如何实现?系统设计题P0
113网关如何防止接口重放攻击?专项设计题P0
114微服务中如何设计配置中心?配置变更怎么实时通知?系统设计题P0
115配置中心不可用时,业务服务如何继续运行?应事先设计哪些容错机制?专项设计题P0
116下单后如何保证订单、库存、支付三个服务的数据一致性?专项设计题P0
117分布式事务补偿机制怎么设计?补偿也失败怎么办?专项设计题P0
118如何实现一致性 Hash?它解决了普通 Hash 的什么问题?原理问答题P0
119如何设计灰度发布系统?怎样逐步切换流量?系统设计题P0
120灰度期间新旧版本如何保证数据兼容?数据库结构变化怎么办?专项设计题P0
121如何实现 SSO?多个系统如何做到一次登录?系统设计题P0
122如何事先设计 SSO 容错机制,使认证中心不可用时已登录用户仍能正常访问?专项设计题P0
123如何设计接口签名机制,防篡改、防重放?专项设计题P0
124身份证号、手机号等敏感数据如何安全传输和存储?专项设计题P0
126除了限流,还有哪些手段可以防止 API 被恶意刷量?专项设计题P0
128短信验证码如何防止恶意轰炸?专项设计题P0
129如何利用 MQ 实现延迟任务,例如 30 分钟未付款取消订单?专项设计题P0

P1:高频扩展题,P0 刷完继续

原题号整理后的题目题型优先级
1如何避免类似支付宝事故的线上生产事故再次发生?工程实践题P1
35000 万条开始 / 结束时间数据,如何统计流量最大时段?编码与算法题P1
7如何设计一个短链接系统?系统设计题P1
10如何统计每个 API 每分钟的调用次数?专项设计题P1
11如何设计文件上传系统?系统设计题P1
14IM 系统中,历史消息如何做下拉分页加载?专项设计题P1
17Go: 写一个必然发生死锁的 Go 程序,不能依赖 time.Sleep编码与算法题P1
2040 亿 QQ 号,只有 1GB 内存,如何做去重?编码与算法题P1
21Go: Go 中如何实现并发安全的单例?initsync.Once、atomic 如何选择?选型与权衡题P1
23Go: 如果让你设计一个哈希表,类似 Go map,怎么设计?编码与算法题P1
28500GB 数据排序,只有 4GB 内存,怎么做?编码与算法题P1
33百万级数据导出 Excel 很慢,如何优化?性能与容量题P1
34几百万行 Excel 导入数据库,要注意什么?工程实践题P1
36Go: 大型哈希表扩容如何避免一次性迁移导致请求长尾?编码与算法题P1
39Go: 如何设计一个 Goroutine Worker Pool?编码与算法题P1
46每次进入订单列表都会触发全量同步,应该如何优化?性能与容量题P1
47Go: Go 服务升级后出现 JSON / Protobuf 序列化兼容性问题,如何排查?故障排查题P1
48API Gateway 出现大量 500 如何定位?故障排查题P1
50如何设计一个点赞系统?系统设计题P1
53200 万生产者、一个消费者,MQ 系统如何高效设计?系统设计题P1
54100 万商户中如何快速找到最近的 5 家?编码与算法题P1
55Go: Go 调用 Write 写文件经历了什么?Page Cache、syscall、fsync 分别做什么?原理问答题P1
57如何设计购物车系统?系统设计题P1
585000 万会员,如何提前 7 天通知即将过期会员?系统设计题P1
59如何实时统计店铺销量 Top 50 商品?系统设计题P1
60MySQL SELECT * 查询千万行数据,会发生什么?客户端 / 数据库会不会爆内存?原理问答题P1
61Go: 1000 个任务每个 100ms,要求 1 秒内完成,Worker Pool 并发度怎么计算?性能与容量题P1
71Bitmap 存用户 ID,但 ID 非常稀疏,会有什么问题?如何优化?原理问答题P1
74如何实现一个简单的负载均衡器?专项设计题P1
75如何设计“强制用户下线”功能?专项设计题P1
77一个 1 秒接口怎么优化到毫秒级?你会从哪些层面分析?性能与容量题P1
78如果让你设计一个 IM / WebSocket 协议,需要考虑哪些问题?专项设计题P1
81数据库设计中,关联表和冗余字段分别有什么优缺点?选型与权衡题P1
83第三方上游接口异步处理是否应该用 MQ?不用 MQ 还能怎么做?选型与权衡题P1
844C8G 和 8C16G 服务器怎么选?依据是什么?性能与容量题P1
88CDN 流量突然异常暴增,可能是什么原因?如何排查?故障排查题P1
90项目需要同时适配 MySQL、PostgreSQL 等数据库,如何设计数据访问层?专项设计题P1
91除了优化代码,还能从哪些方面优化系统性能?性能与容量题P1
93如何设计 OAuth2.0 授权服务?Token 如何管理?系统设计题P1
97国内到海外数据传输延迟很高,系统架构如何优化?性能与容量题P1
98给定一天的登录 / 登出日志,如何计算最大在线人数和最长持续时间?编码与算法题P1
99Go: 一个 Goroutine 如何等待多个并发任务结束并汇总结果?编码与算法题P1
102Go: 一个 []T 中有 1 亿条数据,如何高效去重?编码与算法题P1
107数据同步任务出现 OOM,如何定位和解决?故障排查题P1
112API Gateway 如何同时管理 v1 / v2 / v3 多个接口版本?专项设计题P1
125加密后的数据如何实现模糊搜索?专项设计题P1
130什么是死信队列?什么场景需要 DLQ?如何处理死信?原理问答题P1
131微信扫码登录的技术方案是什么?专项设计题P1

P2:低优先级 / 特殊场景

原题号整理后的题目题型优先级
8如何实现分布式环境下的“单例”?专项设计题P2
22抢红包时红包金额应该如何计算?编码与算法题P2
27如何实现高性能敏感词过滤?编码与算法题P2
29IP 地址在数据库里应该使用什么类型存储?选型与权衡题P2
40数亿条键值数据需要写入 Redis Hash,如何在不压垮 Redis 且允许失败重试的前提下设计写入流程?专项设计题P2
76不允许使用 ><,怎么比较两个正整数?编码与算法题P2
79在 Linux Shell 输入一条命令后,系统发生了什么?原理问答题P2
85Agent 出现死循环如何检测和处理?工程实践题P2
86GPU 集群 1000 tokens/s,1000 用户并发意味着每人只有 1 token/s 吗?如何做性能分析?性能与容量题P2
96如何快速找出 5 分钟内重复登录两次的 QQ 号?编码与算法题P2
127滑动验证码如何实现?如何提高机器破解成本?专项设计题P2

按题型刷题的建议顺序

每个题型内部仍然先刷 P0,再刷 P1、P2。推荐按能力递进:

原理问答 → 选型与权衡 → 编码与算法 → 故障排查 → 性能与容量 → 专项设计 → 系统设计 → 工程实践

题型建议答题框架
原理问答题定义 → 核心机制 → 适用边界 → 优缺点
选型与权衡题约束 → 比较维度 → 结论 → 代价与例外
编码与算法题澄清约束 → 思路 → 实现 → 复杂度 → 边界用例
故障排查题止损 → 观察 → 缩小范围 → 验证根因 → 修复与复盘
性能与容量题基线 → 目标 → 建模或定位瓶颈 → 优化 → 压测验证
专项设计题目标 → 约束 → 核心流程 → 异常与一致性 → 权衡
系统设计题需求 → 容量估算 → 架构 → 数据模型 → 关键链路 → 高可用
工程实践题风险 → 预防 → 检测 → 响应 → 演练与复盘