在实际的项目需求中,我们经常会遇到需要进行分布式部署或者集群部署的情况,分布式部署是将一个业务分拆多个子业务,部署在不同的服务器上,而集群则是同一个业务,部署在多个服务器上。本文我们来讲一下TSINGSEE青犀视频平台中EasyNVR的集群。如果大家有兴趣,也可以看一下我们之前写过的EasyDSS的集群思路:视频直播点播平台EasyDSS如何进行集群?
集群技术特点是通过多台计算机完成同一个工作,达到更高的效率。两机或多机内容、工作过程等完全一样。如果一台死机,另一台可以起作用。简单来说就是由多个相同的服务来完成同一件事情,当其中一个服务出现问题并不影响其他服务的工作问题。
EasyNVR是接入安防摄像机进行视频直播、录像回看的流媒体服务平台,自身拥有拉取安防视频流rtsp流的功能,同时自身也拥有流媒体分发的能力。以集群的方式来说,就是多个流媒体进行视频分发、多个服务进行视频拉流,是集群服务的直接使用形式。
就目前对接客户现场来看,小到几十个摄像机,大到成千上万路的工程现场,首要要求就是视频的发布能力,因此对于流媒体的集群能力是十分必要的。
EasyNVR主要是由推拉流服务和流媒体服务组成,推拉流服务主要负责的是对接入的视频源进行拉流,然后转推出去,推出流的目的地就是我们的流媒体了。我们的流媒体都是nginx来进行视频的分发,因此当推流上来的批量级越来越大时,相对于的流媒体的转发压力也就会越大,目前主要的解决方案就是对流媒体进行集群,主要方式就是同一套系统中部署多个流媒体,由业务层来进行负载均衡,以流媒体实际的承受压力来进行流媒体发布能力的分配,将原有的一个ngingx来进行流媒体发布的压力分分摊给多个流媒体来进行发布处理。
最直观的表现形式就是应用程序启用了多个流媒体nginx来进行工作。关于EasyNVR启动多个nginx的方式之前也有写过,大家可以浏览下:EasyNVR如何启动多个nignx。
在实际的应用场景中,主要是用于高并发的直播和多设备的同时录像。因此当我们的并发要求高于软件的上限或者是同时录像的要求高于软件服务本身时,我们就需要进行对流媒体的集群了。如果大家还是不了解,可以直接联系我们的技术支持人员进行项目咨询,更多视频流媒体相关解决方案,欢迎联系我们获取。