夜雨聆风学习资料网

ARTICLE · 1261735

「设计一个在线文档协同编辑系统」:从 Web

「设计一个在线文档协同编辑系统」:从 Web

「设计一个在线文档协同编辑系统」:从 Web

朋友去面大厂,面试官笑眯眯甩出一句“设计个飞书文档”,接着连环追问了 40 分钟。

两个人同一位置同时打字谁说了算?断网十分钟回来怎么补?30 万长连接怎么扛?这题一考就是实时通信、分布式一致性、冲突算法和存储设计四样硬功夫。

架构上得让网关管连接、协同服务管冲突。最绝的一招是把同一个文档的操作全塞进一条单线程队列,直接把复杂的分布式并发降级成单机串行处理。

最扎心的是冲突解法。OT 和 CRDT 两条路,同位置插入必须靠全局一致的 ID 来定先后。要是漏了墓碑清理,内存直接膨胀好几倍。

最后还得补上断线重连和快照回放,这套方案拿去面试或者真落地都能直接用。

原文「设计一个在线文档协同编辑系统」:从 WebSocket、OT/CRDT 到快照回放,一篇讲透这道面试顶流题
收录于场景实战题
北京,2小时前,

相关学习资料