1.
需求评估:并发与延迟目标
步骤:
(1)计算并发峰值 = 同时在线观众数(并发PV)+ 预留缓冲(建议30%);
(2)定义延迟目标:互动类(WebRTC)<200ms 或 普通直播(LL-HLS)<3s;
(3)写成SLA草案:带宽、并发连接、错误率、P95/P99延迟。
2.
确定传输协议与架构
步骤:
(1)互动强 => 优先 WebRTC(SFU/MCU + TURN);普通直播 => LL-HLS/CMAF 或 HLS;
(2)考虑边缘计算、转码点、Origin 容灾;是否需要转码/多码率自适应(ABR)。
3.
筛选 CDN 类型与候选厂商
步骤:
(1)列出候选:传统 HTTP CDN(Akama、Cloudflare)、实时 CDN(Agora、Tencent RTC)、云厂商 CDN(AWS CloudFront、GCP);
(2)对照指标表:全球 POP、TURN 节点、并发连接上限、SLA、计费模型、支持协议。
4.
准备测试素材与环境
步骤:
(1)准备源流:使用 ffmpeg 生成稳定循环样本:ffmpeg -re -stream_loop -1 -i sample.mp4 -c:v libx264 -b:v 2M -f flv rtmp://ingest.cdn.com/live/key;
(2)准备观众模拟器:Puppeteer/Headless 浏览器脚本播放 HTML5 player 或使用自研基于 Pion/webrtc 的并发模拟器。
5.
并发压测方法(实际操作)
步骤:
(1)分阶段加载:10%、30%、70%、100%并发,观察系统点位;
(2)用 Puppeteer 启动 N 个 headless 实例并记录启动时间、首帧时间、缓冲次数(可用浏览器性能 API 采集);
(3)同时采集 CDN 控制台的 QPS、带宽、连接数、Cache Hit、错误码。
6.
互动延迟测量(关键步骤)
步骤:
(1)时间标记法:推流端每帧插入时间戳,播放器端解码后回传接收时间,计算端到端延时(建议自动化脚本);
(2)测 RTT:对 WebRTC 使用 getStats() 获取 rtt、jitter、packetLoss;对 HLS 测 chunk 到达与播放时间差;
(3)统计 P50/P95/P99,并在不同地域重复测试。
7.
故障场景与稳定性测试
步骤:
(1)施加网络抖动、丢包(tc/netem)与带宽限制,观察重连策略与观感变化;
(2)模拟单点故障(某区域 POP 下线),检验多 CDN 或备份 Origin 的切换时间与丢包率。
8.
监控与报警实践
步骤:
(1)整合 CDN 指标 + Player RUM 到 Prometheus/Grafana,建仪表盘(并发、带宽、起播时间、缓冲率、P99延迟);
(2)设定报警阈值(如缓冲率>3%、P95延迟>目标),并自动触发回滚或流量切换脚本。
9.
价格与合同谈判要点
步骤:
(1)比较计费维度:带宽、请求数、并发连接、TURN 流量;计算峰值与长期流量成本;
(2)在合同中写入关键 SLA(可用率、回归时间、赔付条款、技术支持响应时间)。
10.
多 CDN 策略与上线切换
步骤:
(1)采用 DNS+健康检查或流量管理平台进行流量分配,配置灰度策略(按地域/用户ID分流);
(2)上线前做小流量 A/B,观察两边指标;确认无异常再逐步放量。
11.
验收清单与交付
步骤:
(1)列出验收项:并发承载能力、互动延迟达标、重连/切换时间、监控覆盖、合同 SLA;
(2)完成压测报告与回归测试脚本,做成文档交付运维团队。
12.
常用工具与命令模板
步骤:
(1)推流:ffmpeg -re -i input.mp4 -c copy -f flv rtmp://ingest/streamKey;
(2)WebRTC 观测:在浏览器控制台使用 pc.getStats(),导出 CSV;
(3)并发模拟:Puppeteer 集群脚本或基于 go-pion 的并发模拟器。
13.
问:如何快速验证候选 CDN 的并发承载能力?
答:用分阶段并发压测(10/30/70/100%),用 ffmpeg 推稳定源和 Puppeteer/自研模拟器启动真实播放器会话,记录 CPU/内存、CDN QPS、带宽、错误率与首帧/缓冲数据,若 P95 指标在目标内且错误率低,基本可通过验证。
14.
问:互动低延迟要优先考察哪些技术点?
答:优先看是否原生支持 WebRTC(含 TURN/SFU)、边缘节点 RTT、端到端测延工具支持、以及是否能提供低时延转码/转发;真实测 RTT/P99 延迟与丢包是关键。
15.
问:预算有限如何在并发和延迟间取舍?
答:先锁定业务最小可接受延迟(例如互动必须 <200ms 否则降级为低延迟模式),按峰值并发计算成本,采用混合方案(关键互动走实时 CDN,普通观众用 HTTP CDN),并通过灰度放量与多 CDN 降低风险与成本。