加载中...
System Design Interview

System Design Interview by Alex Xu

System Design Interview

设计 YouTube:DAG 任务调度

  1. 重要组件:元数据存储、转码服务、视频存储、CDN、API 服务
  2. 重要概念:流式传输(边下边播)有对应的协议
  3. 视频转码:DAG 调度一系列任务,视频、音频、元数据,视频检查、缩略图生成、添加水印、编码等
  4. 错误处理:重试、兜底、告警、扩容等
  5. 成本优化:针对长尾,热门走 CDN 冷门走存储,冷门少编码、按需编码
设计 YouTube
加载中...

设计搜索自动补全系统:前缀树

  1. 重要组件:前缀树(Trie)、数据收集服务、查询服务
    1. 前缀树每个节点缓存前k个查询,Trie 缓存于内存中,磁盘上的存储可将其序列化后用文档存储,也可以直接键值存储有助于增量更新缓存
    2. 构建Trie的数据通常来自分析或日志服务,不需要实时构建/更新前缀树,异步构建即可
  2. 优化:限制前缀长度、分片存储、流处理支持实时热门查询
之前在节点直接存频率信息,现在为避免遍历整个Trie,在每个节点存储前k个最常用的查询
设计 YouTube
加载中...

设计聊天系统:分布式键值存储

  1. 三类服务端推送技术的优缺点是什么?轮询、长轮询、WebSocket(最终采用)
  2. 核心组件:通用登录、注册等能力的无状态服务、转发和暂存消息(键值存储)的有状态服务、集成第三方的应用未运行时的通知服务、持久性键值存储
  3. 在线状态为什么用心跳检测比长连接是否断连更好?网络频繁断开重连是可能存在的
一对一聊天流
小型群聊流:当用户A在群聊中发送消息时发生的情况
小型群聊流:接收者可以从多个用户接收消息,每个接收者都有一个收件箱(消息同步队列)
设计聊天系统
加载中...

历史记录

共 4 条
  1. 2026-03-25 15:35:12
    init
  2. 2026-03-25 17:10:35
    增加《设计 YouTube》 一章
  3. 2026-03-26 17:55:32
    增加《设计搜索自动补全系统》 一章
  4. 2026-03-27 17:18:29
    增加《设计聊天系统》 一章