直播在互联网市场中一直都处于稳定发展的局面,虽然直播行业经历了不同时期的洗牌和考验,但它还是依靠自身强大的变现能力“存活”到现在。而且随着即将统一运营商服务和流量资费的不断下调,更是给视频直播软件开发业务提供了发展“温床”,比如接下来我要给大家分享的内容,开发过程中需要注意的网络架构相关。本文主要以CDN为主来介绍相关的架构问题。
对于传统的点播业务来说,CDN只有下行分发不同。但是对于泛娱乐和游戏类的直播场景来说,直播架构是分为上行汇聚和下行分发两种的。
1.主播推流模式
(1)直播端推流到上行边缘节点。
(2)上行边缘节点将流推到汇聚核心。
(3)汇聚核心收到流后,和 CDN 一样,不需要主动将流分发到边缘,一些转码、水印或录制类的业务通常是在汇聚核心完成。
2.回源拉流模式
如果用户在访问到汇聚核心后,会向一个回源节点拉流,回源节点向客户源站拉流。
3.下行观看流程
(1)观众到边缘节点拉取直播流。
(2)在边缘节点上如果存在音视频流,可以直接发送给观众,如果没有就会向上一级回源。
(3)上一级节点可能是中转节点,也可能是汇聚核心。通常会在两种情况下选择是否经过中转节点,即下行边缘到汇聚核心链路质量和汇聚核心处理能力。
对于CDN来说,是不可能单独使用一个汇聚核心的。如果使用单独的汇聚核心,一旦遇到网络故障或者是高并发等情况发生,就会导致整个直播业务出现瘫痪的情况。况且,单独的汇聚核心无论怎样都是无法覆盖全国的,所以就需要大量的中转节点。通常,直播会使用多汇聚核心的架构,即以下两种方式。
1.链路选优
即上行到一个链路最优的核心,下行也到一个链路最优的核心。两个核心之间使用专线“打通”,从而保证传输质量。国内通常使用3个核心就可以覆盖国内的主要运营商和区域,5个核心基本就能全覆盖所有边缘节点。链路选优问题是需要进行长期的实时数据监控的。比如,直播流在哪个汇聚核心,是汇聚核心之间互相能拉到流的基础。如果需要考虑一些异常节点无法使用的情况,那么就需要进行对应的数据清理。需要注意的是:多一级拉流会增加首屏时间。
2.保证每个汇聚核心都有流
即下行边缘无论如何都能拉到流。这一架构的优点就是不需要使用数据库进行记录是推到了哪个核心,但是也容易存在以下几个问题。
(1)上行边缘到两个核心的质量无法保证,如果上行边缘到某个汇聚核心的链路质量较差,那么从这个汇聚核心拉流的用户观看质量肯定会很差。
(2)上行边缘是需要推两份流到汇聚核心的,这样一来就会造成一定的带宽浪费。对于直播来说,带宽的耗费远远要比主播的收益要高得多。
(3)为了解决上行边缘到所有核心的链路问题,就需要选取很多的中转节点,或者是使用BGP的机房作为上行边缘,这样就会耗费更大的成本。
在视频直播软件开发过程中,CDN的架构也是相当重要的。至于选择哪种架构,还是要根据直播平台自身的定位和资金等方面来决定的。
本文声明原创,转载请注明出处。