跳到主要内容

23 篇博文 含有标签「Interview」

面试题与解答

查看所有标签

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

· 阅读需 34 分钟

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

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

面试题:MySQL 为什么用 B+ 树而不是 B 树或跳表?联合索引的最左前缀怎么生效、回表与覆盖索引的代价怎么算、limit 100000, 20 这种深分页为什么慢、怎么优化到 O(1)?

· 阅读需 18 分钟

这是「每日一题」专栏的第二十二篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇是 长上下文与 RoPE 长度外推,今天按轮换回到后端/分布式方向,兑现上一篇的预告:MySQL 索引与深分页。这题的面试杀伤力在于它「人人都会、人人答不满」——绝大多数人能说出「B+ 树矮、叶子有链表」,但一追问「三层的容量账怎么算」「最左前缀为什么断在范围列就没了」「延迟关联为什么还是 O(offset)」,就露馅了。

面试题:长上下文到底是怎么做到的?RoPE 为什么不能直接外推、PI/NTK/YaRN 各在插什么、32K 训练的模型凭什么撑到 128K,长上下文和 RAG 又该怎么选?

· 阅读需 17 分钟

这是「每日一题」专栏的第二十一篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇是 分库分表之后的在线扩容,今天按轮换回到 AI/LLM 方向,兑现上一篇的预告:长上下文与 RoPE 长度外推。这道题的分水岭很清楚——背过的人能说出「位置插值」四个字,真做过的人能讲清楚「为什么高频维度和低频维度的失败方式完全相反,所以一刀切必错」。

面试题:分库分表之后怎么在线扩容?不停机把 4 库扩到 8 库,双写、影子表、数据校验与回滚怎么做?

· 阅读需 17 分钟

这是「每日一题」专栏的第二十篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇是 MoE 混合专家,今天按轮换回到后端/分布式方向,兑现昨天的预告:分库分表之后的在线扩容。这题的面试杀伤力很高——很多人张口就是「双写」两个字,但一追问「迁移期间读走哪边」「校验对不上怎么办」「出错怎么退回去」,就答不完整了。

面试题:MoE 为什么能用更少的激活参数换来更大的容量?专家路由怎么设计、负载不均衡怎么治、为什么 MoE 推理比同规模稠密模型更难?

· 阅读需 16 分钟

这是「每日一题」专栏的第十九篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇是 短链接系统进阶,间隔了一个月没更新,今天按轮换回到 AI/LLM 方向,聊近两年面试出现频率陡增的一题:混合专家(MoE)——为什么 671B 的模型只需要 37B 的激活参数就能跑起来,这条路到底省了什么、又难在哪。

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

· 阅读需 9 分钟

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

面试题:分布式限流怎么做?令牌桶、滑动窗口各适合什么场景,为什么 Redis + Lua 是集群限流的标准答案?

· 阅读需 9 分钟

这是「每日一题」专栏的第十七篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇讲了 为什么 vLLM 是当前最快的 LLM 推理框架,今天按轮换回到后端/分布式方向,聊上一篇预告的题:分布式限流。

面试题:为什么 vLLM 是当前最快的 LLM 推理框架?Continuous Batching 和 PagedAttention 各自解决了什么问题、显存占用怎么降下来的?

· 阅读需 9 分钟

这是「每日一题」专栏的第十六篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇讲了 实时协作文档系统,今天按轮换回到 AI/LLM 方向,聊上一篇预告的题:为什么 vLLM 最快?Continuous Batching 和 PagedAttention 各自解决了什么?

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

· 阅读需 8 分钟

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