技术面试题

设计短视频分布式存储系统

"如何设计一个分布式存储系统,存储和分发数十亿条短视频,保证高可用和全球范围内的低访问延迟?"

为什么面试官会问这道题

视频的存储和分发是抖音/TikTok的基石。这道题考察候选人对分布式文件系统、跨地域数据复制、CDN集成和海量非结构化数据成本优化的理解,直接对应字节基础架构团队面临的真实工程挑战。

如何回答

  1. 1

    先分析数据特征:视频文件从几MB到几百MB不等,写一次读多次的访问模式,要求高读取吞吐。

  2. 2

    设计元数据层:分布式KV存储,映射视频ID到存储位置、编码格式和CDN缓存状态。

  3. 3

    讲解存储层:纠删码vs副本复制的权衡、基于访问模式的冷热温分层、跨可用区的数据放置策略。

  4. 4

    覆盖服务链路:CDN集成、回源缓存、自适应码率选择和边缘计算转码。

参考回答示例

我会设计一个三层架构。元数据服务使用强一致性的分布式KV存储,将视频ID映射到物理存储位置、转码变体和访问统计。存储层对温冷数据使用纠删码(如Reed-Solomon 8+4)来节省成本,热门视频则存放在多副本SSD集群上以保证低延迟读取。数据通过一致性哈希分布到各区域的存储节点上。全球服务依赖多级CDN:边缘节点缓存热门内容,区域中间层吸收缓存未命中,源站从存储层拉取。我会实现基于推荐信号的智能预取——当视频进入排序流水线时就预加载到附近边缘节点。冷门视频迁移到更便宜的对象存储。系统追踪每个视频的访问频次,自动管理分层迁移,目标是活跃内容95%的CDN缓存命中率。

实用技巧

  • 讨论成本优化——字节的规模下存储成本巨大,分层和纠删码至关重要。

  • 提到推荐和存储的联动:根据推荐预测提前预热CDN缓存。

  • 涉及多地域一致性和容灾策略。

常见问题

为什么用纠删码而不是全量副本复制?

纠删码如RS(8,4)可以达到与3副本相近的持久性,但存储开销仅为1.5倍而非3倍。在字节EB级的数据规模下,这意味着巨额的基础设施成本节省,同时仍保持高可用性。

这种规模下视频转码怎么做?

使用分布式转码流水线,上传时生成多种分辨率和编解码器的变体。优先转码主流格式,冷门格式按需转码并缓存结果,利用GPU集群实现并行转码。

面试时担心忘词?即答侠实时助你

即答侠 AI 实时监听面试对话,自动识别问题并即时生成回答建议——无感辅助,让你从容应对每一道题。

免费试用即答侠