跳到主要内容

8 篇博文 含有标签「System Design」

系统设计面试题

查看所有标签

面试题:设计一个 IM 即时通讯系统——百万长连接怎么撑住、消息怎么做到不丢不重不乱序、万人群的消息扩散怎么算账?

· 阅读需 34 分钟

这是「每日一题」专栏的第二十三篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇是 MySQL 索引与深分页,文末预告的分布式 ID 生成器在 8 月 16 日已经出过一版 基础篇,再写一遍是重复劳动,所以今天换成同属系统设计方向、但更贴近日常后端的一道硬题:IM 即时通讯系统。

这题的杀伤力在于它「看起来谁都能画个框图」:客户端、网关、业务层、存储,几笔就画完了。但只要面试官往下一问——「单机百万连接,内存要多少 GB?端口够用吗?」「网关到底是不是无状态?」「你说消息不丢,丢在哪几个时刻?」「顺序用什么保证,时间戳行不行?」「一万人群发一条消息,写放大是多少倍?」——画框图的人立刻熄火。今天把这五个追问的账全部算一遍。

面试题:设计短链接系统——短码怎么生成才不碰撞、跳转用 301 还是 302、读写比 100:1 的存储与缓存怎么选?

· 阅读需 9 分钟

这是「每日一题」专栏的第十八篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇讲了 分布式限流怎么做,今天按轮换回到系统设计方向,兑现昨天的预告:短链接系统。8 月 12 日已经写过一版 基础篇,今天这版是进阶篇——聚焦预告点名的三个硬核考点:短码怎么生成才不碰撞、跳转到底用 301 还是 302、读写比悬殊的存储与缓存怎么选,顺便把基础篇里「跳转一律用 302」的简化结论升级成完整决策框架。

面试题:设计实时协作文档系统:多人同时编辑同一份文档怎么不冲突?OT 和 CRDT 各自怎么运作、怎么选?

· 阅读需 8 分钟

这是「每日一题」专栏的第十五篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇讲了 接口幂等,今天按轮换回到系统设计方向,聊上一篇预告的题:实时协作文档系统。

面试题:设计一个秒杀系统,怎么扛住瞬时洪峰、又怎么防超卖?

· 阅读需 10 分钟

这是「每日一题」专栏的第九篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇讲了 分布式事务,今天按轮换到系统设计方向,聊一道电商场景出镜率最高、也最考验工程功底的题:设计一个秒杀系统。