TikTok直播是字节跳动增长最快的营收来源之一,大规模低延迟传输是核心技术挑战。这道题考察你对实时媒体协议、CDN边缘缓存和水平扩展策略的理解。
先梳理端到端链路:推流(RTMP/SRT)、转码、CDN边缘分发、客户端播放。
逐跳说明如何降低延迟——推流用SRT或QUIC,转码用低GOP分片,最后一公里用WebRTC或HTTP-FLV。
讨论水平扩展:全球分布的边缘节点、一致性哈希做流路由、流量尖峰时的优雅降级。
阐述容灾方案——推流多路冗余、CDN节点自动故障转移、实时监控告警。
我会把系统分四层设计。推流层通过SRT协议接收主播流,利用其前向纠错能力降低重传延迟,并用地理感知DNS就近路由到转码集群。转码层生成多档ABR码流,GOP设为1秒,输出低延迟CMAF分片。分发层采用分级CDN架构——回源盾聚合请求,边缘PoP用HTTP-FLV或低延迟HLS服务观众。每个边缘节点通过共享内存缓存,使一次分片拉取能服务数千连接。客户端自适应播放器实时监测缓冲状态,无卡顿切换码率。容灾方面,每路推流双发到两个异地源站,健康检查服务在2秒内触发自动切换。端到端延迟、卡顿率和错误率等指标实时汇入告警管线,确保在用户感知前发现问题。
提到SRT、QUIC、WebRTC等具体协议来展示技术深度,避免停留在纯抽象层面。
尽量量化:端到端延迟目标3秒以内、GOP 1秒、故障转移2秒内完成。
主动讨论延迟与成本的权衡——更短的分片意味着更多CDN请求和更高的回源负载。
RTMP基于TCP,存在队头阻塞问题。SRT基于UDP,内置前向纠错和重传机制,在丢包网络环境下能实现更低延迟同时保持可靠性。
边缘CDN节点本地缓存分片,热门直播每个PoP只需回源一次。结合基于热度信号的预测性扩容和备用CDN溢出路由,系统能在不降低画质的情况下吸收流量尖峰。