写点什么

避免流量高峰期 CDN 问题的 10 个方法

  • 2018-07-26
  • 本文字数:2515 字

    阅读完需:约 8 分钟

在视频流媒体中,因平台火爆而出现问题是件好事。至少,这比根本没有观众要好。

也许你正在使用世界级的 CDN,但是,在大型赛事期间,当 CDN 的服务器和对等点流量变得饱和的时候,一些用户还是无法享受到流畅的体验。因为每个 CDN 拥有的容量都是有限的,所以都有其局限性。

更糟糕的是,每个 CDN 都是一个黑盒子,在任何特定时候几乎都不能提供可用容量的信息。因此,CDN 在大型赛事中的实际表现情况是无法预测的,尤其是当有不同内容供应商进行活动视频直播的时候。你会发现,实际上你和其他内容供应商在共享 CDN 这种稀缺资源上竞争。

今年的世界杯正如火如荼地进行着,可以说世界杯会是有史以来最大的流媒体活动。我们对一些进行世界杯视频直播的广播公司客户进行了采访,询问了他们为世界杯直播做了哪些准备。

根据采访,我们总结了如下10 个方面的经验。你可以主动采取这些行动,以确保用户在观看世界杯直播时尽可能获得最佳体验。用户已经为这次盛会等了足足四年,你可不想让他们失望吧。

1. 数据是关键 —— 了解 CDN 表现如何

使用 Mux、Youbora 或 Conviva 等服务以准确了解你的 CDN 表现如何。再强调一遍,每个 CDN 都是一个黑盒子,但是你至少应该从外部进行测试,并获得关于交付情况有意义的数据。

此图来源于某次活动现场直播的Peer5 分析仪表盘

Peer5 的内置流媒体分析还能对 CDN 交付提供很多洞察分析,即使你没有使用我们的 P2P 交付产品,你还是可以使用这些免费的分析数据 。如果目前你还没有分析数据,那么有一点分析总比什么都没有好。如果你有分析数据,那么可以把 Peer5 的数据和现有供应商的统计数据进行比较,以进行完整性检查。

2. 让 CDN 供应商为问题负责

CDN 提供商并不完美。它们经常返回 HTTP 错误,而且有些会优先考虑重要或者咄咄逼人的客户。与你的 CDN 提供商取得联系,准备好数据(#1 中提到的),并要求他们为你的大型赛事提供更好的性能。

如果你的 CDN 提供商没有解决问题,没有达到你的期望,就要考虑换 CDN!如今,换个 CDN 不再是个大麻烦了,通常只需要几天来部署和测试一个新的 CDN。

3. 如果你还没换 CDN,那么就用多个 CDN 以保安全

你不能仅仅依靠单独一个供应商来进行世界杯直播。流媒体直播的关键是冗余,如今使用多个 CDN 要容易得多。首先,纯粹使用 CDN 进行缓存,并删除任何类似摄入等供应商锁定的功能。然后,可以轻松地添加另一个(或者两个,甚至四个!)CDN。接着,你可以在 CDN 之间进行负载平衡,如果出现问题,就切换到没有问题的 CDN 上。

即使你无法更改供应商,无法真的从你的 CDN 迁移,也有办法使用额外的 CDN 进行缓存和冗余,同时仍然使用你的主 CDN 专门进行摄入 / 编码。

4. 改进多个 CDN 切换逻辑

你是如何在 CDN 之间实行负载平衡的?我们看到很多平台仍然使用非常简单的静态负载平衡方案。这意味着,每个用户在整个过程中被分配到一个 CDN,这可能是个问题。首先你必须要测试的是:如果一个 CDN 不能工作了(或者表现糟糕),是否能中途切换 CDN?你可以自己构建这个功能,或者采用第三方解决方案,比如:Cedexis 或 DLVR。

5. 多样化 CDN —— 添加一个无服务器 CDN

给你自己多准备条路。点对点(Peer-to-Peer,简称 P2P)网状网络在解决大规模问题方面已经有几十年的历史了。一旦谷歌开源 WebRTC,Peer5 就可以构建一个 P2P,一个无需终端用户下载或安装的无服务器 CDN,因为 WebRTC 已经嵌入了浏览器。这意味着 Peer5 对于终端用户来说是透明的,就像任何一个基于服务器的 CDN,并且与目前的流媒体架构无缝集成。

这个混合方法(传统的CDN + 无服务器CDN)很独特,因为它使交付堆栈完全多样化了,不受负载的影响。P2P CDN 是最终的流媒体保险方案,其中最棒的是,它完全免费。如果一切正常,并且传统的CDN 表现良好,那么你将永远不需要P2P 容量,也就不必为此付费。但是,如果一切都乱了套,并且观看人数太多了,那么,你就真的需要一个解决方案来解救你。

6. 增加一些额外的服务器

如今,很多公司运营着自己的数据中心,有时也和商业 CDN 合作。如果你运营自己的 CDN,谨慎起见,要增加一些额外的服务器以防万一。考虑到惊群(thundering herd)现象,要在为时已晚前启动更多的实例。

7. 准备好阻止更多用户访问视频流

没有人希望自己处于这个境地,但是,你也许需要在 CDN 出现问题的地区掐断连接。

考虑告诉用户是否 / 何时遇到了交付问题。或者,考虑从页面中删除视频元素一段时间。完全没有视频比有个不断出现错误和缓冲的视频要好一点。

通过采取这个步骤,你也减轻了 CDN 的负担。你肯定不希望在大型节目中出现错误信息或推送代码更改。提前开发这个功能,并确保你能够在需要的时候马上就能触发该功能。

8. 准备好妥协 —— 添加更低的格式标准

由于质量不够好,很多内容供应商不再提供 360p 格式。但是,在大型节目中,你应该考虑把它们添加进来。更低的格式标准意味着即使你的 CDN 受到压力,容量有限,一些终端用户仍然可以观看。

9. 完美并不总是好事 —— 删除更高的格式标准

一种更有趣的方法是,如果碰到紧急状况(容量问题),删除最高格式标准的能力。ABR 算法是很贪婪的,这意味着每个播放者都会试图从 CDN 攫取尽可能多的带宽,以获得尽可能高的视频质量。每个播放器都是独立的,不会“知道”服务器是否压力过大或者当前有多少个其他用户在请求视频片段。很有可能发生这样的情况:所有播放器都在争夺达到同样的最高格式标准,但是最终,没有一个能够做到(可以想想囚徒困境)。

同样,这不是一个理想的场景,但是,当糟糕的事情开始发生时,拥有一个可以消除副本的故障安全措施也许是非常有用的。

10. 了解极限 —— 事先进行压力测试

不幸的是,目前还没有完美的全球压力测试解决方案。有像 LoadRunner 这样的综合解决方案,会创建数以千计的请求发送给你的 CDN,但是这些请求通常将来自位于同一数据中心的几台服务器,它们和你的 CDN 有着良好的连接性。你不能真正超高规模地或在有困难的地区测试你的 CDN,这会非常昂贵和耗时。

我们找到的最佳解决方案是,使用以前大型赛事的真实数据,并认真地深入研究那些第 1 条中的分析所识别出的薄弱痛点。

祝你好运!

查看英文原文: 10 ways to avoid CDN issues at peak

感谢张婵对本文的审校。

2018-07-26 08:517090
用户头像

发布了 199 篇内容, 共 85.3 次阅读, 收获喜欢 295 次。

关注

评论 1 条评论

发布
用户头像
不错不错
2020-03-08 18:35
回复
没有更多了
发现更多内容

浅析Kubernetes的权限控制模型

inBuilder低代码平台

云原生 容器编排

Vue3 中的 v-bind 指令:你不知道的那些工作原理

快乐非自愿限量之名

JavaScript 前端 Vue 3

Web前端开发与低代码开发——现状分析与未来发展

不在线第一只蜗牛

前端 Web 低代码

怎么在国内进行tiktok海外直播?

Ogcloud

Tik Tok直播 Tik Tok直播网络 Tik Tok tiktok运营 tiktok直播

大小单双彩票app平台

Geek_89ba7f

贝壳找房基于Flink+Paimon进行全量数据实时分组排序的实践

Apache Flink

大数据 flink 流式计算 paimon

VMware ESXi 8.0U2c macOS Unlocker & OEM BIOS Huawei (华为) FusionServer 定制版

sysin

macos huawei esxi OEM unlocker

macOS Sequoia 15 beta 2 (24A5279h) ISO、IPSW、PKG 下载 (iPhone Mirroring 现已支持)

sysin

macos ISO sequoia

大小单双最安全的打法

Geek_89ba7f

从土木工程到软件开发,他在开源中收获成长、实现成功

TDengine

数据库 tdengine 时序数据库

百度智能云升级3款大模型应用:面向三类场景打造企业“超级员工”

Geek_2d6073

大发大小单双最安全的打法

Geek_89ba7f

JNPF低代码平台:轻量级业务定制服务在中台架构中的研发与应用

EquatorCoco

低代码 中台架构

Java实现管线拓扑关系连通性分析

不在线第一只蜗牛

Java 深度学习 优化

全栈开发与测试开发定向就业班助你快速就业

霍格沃兹测试开发学社

macOS Sequoia 15 beta 2 (24A5279h) Boot ISO 原版可引导镜像下载 (iPhone Mirroring 现已支持)

sysin

macos ISO sequoia

VMware ESXi 8.0U2c macOS Unlocker & OEM BIOS xFusion (超聚变) 定制版

sysin

macos esxi OEM BIOS unlocker

百倍提升7B模型推理能力 昆仑万维携手新加坡南洋理工大学发布Q*算法

新消费日报

直播分享|TinyVue 组件库主题适配原理与实战

OpenTiny社区

开源 Vue 前端 组件库 OpenTiny

大数据系统软件助力工业数字化转型

快乐非自愿限量之名

大数据

迁移方案详解 | 使用YMP从异构数据库迁移到YashanDB

YashanDB

数据迁移 yashandb 崖山数据库

大小单双走势规律口诀

Geek_89ba7f

“算启未来”,九章云极DataCanvas公司与您相约WAIC 2024

九章云极DataCanvas

当程序员遇上PPT,会碰出什么火花?

秃头小帅oi

国内公司访问国外服务器网络解决方案

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

推荐!不可错过的开发者服务API

幂简集成

Amazon API

珠海“云上智城”新动力:华为云与华发数智合作签约,共创智能未来

Geek_2d6073

避免流量高峰期CDN问题的10个方法_音视频(后端)_Hadar Weiss_InfoQ精选文章