面试题 | 设计youtube

本文探讨了设计YouTube系统的关键点,包括上传、分享、搜索视频,处理赞踩和评论,以及高可用和低延迟的要求。面临挑战如存储、读写比例、元数据扩展性。采用upload服务、消息队列、转码服务、缩略图生成服务等组件。存储方面,视频使用分布式存储,缩略图利用bigtable优化大量读取。系统通过缓存、CDN、LB进行扩展,解决热点视频负载不均问题,并使用视频ID进行sharding以平衡存储。关键在于缩略图的高效存储和读取策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Use Cases

  • 上传 视频

  • 分享/查看 视频

  • 基于title搜索

  • 记录视频状态:赞/踩,播放数量

  • 评论

  • 高可靠

  • 高可用AP

  • 低时延,不卡顿

约束

  • 500M用户,DAU 1M
  • 单条视频100MB,1M/day,存储=100TB,上传qps=11.3
  • 视频 r/w = 100/1, 读qps=1100
  • 评论 10M ,每条1KB 存储 10G,qps=110
  • 存储增长:100TB / 3PB / 36PB / 180PB
  • 元数据:vedio / comment/ user 易扩展

High Level

  1. upload服务 app server:负责任务转发和路由,上传任务放到队列,用户注册读写User DB,查看和评论任务读写metadata DB
  2. 消息队列:上传视频先push到队列,然后被消费(编码/生成缩略图/存储)
  3. 转码服务:离线转码到多个码率,多种格式
  4. 缩略图生成服务
  5. video和缩略图存储:分布式存储
  6. video metadata storage&#x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值