题目重点:从题面给出的 schemaName、host、port URL 澄清入口范围,再设计视频上传、转码、分片播放与全球分发。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 先在面试中确认 URL 的角色。本文训练范围把它视为用户访问的站点入口;若需抓取这些 URL 的视频,另要处理版权、抓取、解析和安全边界。
- 目标是点播视频上传与播放;直播、DRM 强度和推荐排序作为可选追问,不擅自归入题目必需功能。
- 训练量级示例为峰值 100 万同时播放、平均 3 Mbps,则媒体出口约 3 Tbps;这个数值只是容量计算示例,不是 Oracle 实际数据。
解题路线
- 控制面负责域名入口、身份、视频元数据、权限、播放授权与签发短期媒体 URL;数据面负责对象存储、转码后的多码率分片、CDN 缓存和播放器自适应取片。
- 上传先接收元数据并给受限直传地址,原文件落对象存储后异步转码为分辨率/码率 ladder,校验结果再原子发布 manifest,失败可重试且不发布半成品。
- 全球播放把静态分片放 CDN 边缘,manifest 和授权走区域 API;缓存命中率、跨区域回源、热门内容预热与地理限制决定成本和时延。
- 播放器使用分片吞吐、缓冲区与网络变化选择码率;服务端监控启动时延、卡顿率、错误率、回源率和播放完成率。内容删除/权限撤销要兼顾 CDN 缓存失效。
- URL 的 schema/host/port 涉及 HTTPS、标准端口、Host 路由和边缘 TLS;若为外部输入,应防 SSRF、私网地址访问与不可信重定向。
手动走一遍
用户访问 HTTPS 站点页,经 API 获取视频 ID 和授权 manifest,播放器请求 4 秒分片;边缘命中直接返回,未命中按规则回源并缓存。若 100 万并发都以 3 Mbps 播放,出口是约 3 Tbps,单区域源站直出不可行。
规模与取舍
元数据按视频数 V 存储,转码计算随视频时长和目标码率数增长;播放数据传输约并发数×平均码率。若每 4 秒一个分片,100 万并发平均约 25 万次分片请求/秒,实际还受并发下载与预取影响。
易错点与追问
容易失分的边界
- 看到 URL 字段就假定必须抓取任意网页视频,未澄清题目角色。
- 把媒体分片经过应用服务器代理,忽略 Tbps 级出口与 CDN。
- 只做缓存而不处理授权过期、内容删除和地区限制。
- 没有转码发布状态,允许播放器看到只有部分分片的 manifest。
继续深挖
- 如果改为直播,上传、转码、延迟和时移缓存有什么不同?
- CDN 回源大面积失效时怎样降级以保护源站?
- 若 URL 是外部媒体来源,如何做安全抓取、版权校验和格式兼容?
