“怎样才能保持直播系统的稳定运行呢?”估计一提到这个问题,技术开发人员都会忍不住擦一把汗,并且强烈表示“我们在进行直播间搭建时为了保持它的稳定运行可真是没少费功夫。”确实,直播作为实时交互性极强的社交应用场景,要想保持它的稳定运行着实不易。

既然提到了关于直播稳定运行的问题,那么我们就先简单了解下与之相关性较强的高并发问题吧。至于高并发的定义,在这里就不再多做赘述了。我们通过一个简单的举例来加深一下了解:有很多直播平台的人气主播都会在微博上跟自己的粉丝约定直播时间,一旦到了约定的时间,粉丝就会在开播前后的同一时间段内进入同一个直播间观看直播。这个时候,就可以称之为是高并发。反之,如果用户是逐渐进入直播间进行观看的话,就不会出现高并发。

这个时候,我们可以从直播系统的架构方面入手来解决直播中经常出现的问题。

1.单服务器架构

主播端的音视频流上传到服务器后,再通过这台服务器分发给其他用户,采取合适的传输协议,可以保持较小的延时。也就是说,从主播到服务器,或是编解码和网络抖动等产生的延时可以控制在几百毫秒以内。这个架构非常简单,但是也有一个很大的缺点:无法覆盖不同地区的用户。而且单台服务器无法支撑大规模的用户,一旦这台服务器或者机房出现问题,将会影响整个传输过程。所以,可用性并不强。

2.分布式架构

主播端的音视频流上传到一个接入服务器后,这个服务器会将该视频流分发到部署在世界各地的服务器。然后这些服务器会接入本地用户将视频继续传下去。这一架构可以解决单服务器无法解决的覆盖问题,部署在世界各地的服务器可以快速的就近接入。整个音视频流通过分布式的传输算法,可以将其实时传输到世界各地的机房。最重要的是,它可以避免机房或服务器等出现故障,从而避免对传输过程造成影响。

3.CDN架构

将这个架构放到最后的原因:是目前比较流行的直播架构。主播通过手机或电脑等设备,将音视频流上传到服务器,并接入CDN服务(内容分发网络),通过CDN进行网络分发,从而分发到世界各地的用户端。

对于直播系统来说,要想在直播间搭建的过程中保持它的稳定运行,需要多方面的“协调合作”才可以完成,本文所提到的关于系统架构方面的内容就是其中一部分。所以,开发一个优质的直播平台并不是件容易的事情,如果您对音视频开发感兴趣,欢迎关注拓幻科技!