负载均衡是一种网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁碟驱动器或其它资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。在视频服务技术迅速发展的这几年,负载均衡技术更是被应用在了视频平台当中,在分布式系统中,负载均衡作为连接内外的门户,对系统有着重要作用。
负载均衡技术视频行业的运用越来越广泛,其中主要有两种:
- 一种是用于安防行业的视频直播,比如通过EasyNVR、EasyGBS建立的公安网系统直播、校园全天候直播、养殖场/渔场监控直播等。在这类场景运用中,不少项目团队都具备几百甚至上千个前端设备的接入量,并且需要在没有客户端的情况下实现视频上传的云存储,而庞大的设备接入量将是一个需要突破的重要方面;
- 另一种是用于在线教育直播或者娱乐直播,比如利用EasyDSS实现的在线教育直播、在线医疗直播、体育赛事赛事直播等。这类直播以庞大的用户访问量为主,可能一台设备的视频流需要承载千万人的同时访问。
毫无疑问,这两种情况下,在视频传输、存储及调阅的过程中,都需要考虑视频服务架构的稳定性、可扩容性、负载均衡。因此在这些直播当中,不得不提的一个重要环节就是CDN。
在一套完整的直播流程中,CDN负责处理主播端采集到的音视频数据,然后观众端再从CDN请求这些数据。作为内容分发网络,CDN借助负载均衡系统将内容推送到接近用户的边缘节点,使得用户就近取得资源,这一系统增加了用户的访问速度以及访问的稳定性,这与直播的需求十分契合。
对于视频流媒体平台来说,比如EasyDSS这样的直播点播平台,实现负载均衡也具有重要意义。之前我们介绍过EasyDSS如何实现RTMP的负载均衡,处理方法是通过配置stream功能模块来实现。实际上,根据不同的用户需求,还可实现不同形式的负载均衡,比如纵向扩展或者横向扩展、硬负载或者软负载等。
此处我们要特别注意一点,我们收到过来自用户的咨询,问是否可以自建负载均衡,我们对此建议是不提倡大体量用户的自建,小体量则可以尝试。此外,由于自建负载均衡需要有基础的运维能力,需要运维人员持续跟踪,因此也需要开发人员对该层技术足够熟悉。如果是大体量的用户,可以选择市面上已经成熟稳定的负载均衡方案。