如何扩展srs的并发能力,支持上万用户同时拉流

2023-07-16 1364阅读

温馨提示:这篇文章已超过393天没有更新,请注意相关的内容是否还可用!

推流的能力一般也称为接收流的能力,因为推流就是客户端推流到SRS,从SRS的角度来说,就是接收客户端的流并提供服务。在SRS的作用中,Edge主要解决播放或者下行的扩展能力,而Origin则解决上行或者流媒体的扩展能力。Origin源站提供多种解决方案实现扩展。为了业务稳定,我们无法部署支持3K的Origin服务器。SRS支持Vhost,可以将流划分为不同的逻辑域。比如3K的码流可以分成2个Vhost,这样每个Vhost的码流只有1.5K,就可以推送码流到2个源站,如下图:。例如,播放时只需要添加Query参数来指定vhost,不用关心Origin会根据不同的Vhost有不同的地址。

推流的能力一般也称为接收流的能力,因为推流就是客户端推流到SRS,从SRS的角度来说,就是接收客户端的流并提供服务。

在SRS的作用中,Edge主要解决播放或者下行的扩展能力,而Origin则解决上行或者流媒体的扩展能力。

Origin源站提供多种解决方案实现扩展。 根据上述场景,我们假设杭州有3K个主播。 为了业务稳定,我们无法部署支持3K的Origin服务器。 这会导致CPU运行比较高,一般源站还需要录制或者转换为HLS,需要预留部分CPU给其他业务。

SRS支持Vhost,可以将流划分为不同的逻辑域。 比如3K的码流可以分成2个Vhost,这样每个Vhost的码流只有1.5K,就可以推送码流到2个源站,如下图

阿里云扩展数据盘_阿里扩展器云服务在哪_阿里云服务器如何扩展

备注:我们使用两种颜色来区分两个Vhost。 对于Edge来说,不同的Vhost可以返回到不同的Origin,因此不同Vhost的流可以从同一个Edge播放。

注意:图中的播放器连接到Edge服务器。 事实上,流媒体也可以被推向边缘。 不需要推送源站。

注意:建议客户端连接Edge而不是直接连接Origin,以获得更好的一致性。 例如,播放时只需要添加Query参数来指定vhost,不用关心Origin会根据不同的Vhost有不同的地址。

注意:Vhost的优点是与源站点完全独立,不会互相干扰。 在客户端指定vhost就相当于在客户端做了负载均衡。 系统结构比较简单。 缺点是企业意识不强。

如何扩展srs的并发能力,支持上万用户同时拉流

如果业务不以Vhost区分,或者一台Vhost中有多个流,则SRS提供Origin Cluster来扩展Origin,如下图:

阿里扩展器云服务在哪_阿里云服务器如何扩展_阿里云扩展数据盘

备注:两个源服务器将相互查询流。 如果 Edge 请求的流不在源站点上,Edge 将被定向到具有该流的源。 详细信息请参考OriginCluster的WIKI描述。

注意:同样,建议不要直接推送到Origin,而是推送到Edge。

注:源站集群的优点是部署比较简单,不需要根据业务配置Vhost。 缺点是源站需要互相访问。

值得注意的是,由于源站点是流的最终位置,因此本质上是有状态的,并且两个源站点并不完全等效。 边缘可以被视为合并回源的代理。 两个 Edge 之间没有区别。 它们不存储流量信息,都是通过源站获取流量。 因此,推流的扩展能力比播放的扩展能力对系统提出了更大的挑战。

在监控领域,可能有10万个、100万个摄像头。 如果需要将这些摄像机的码流全部推送到服务器上进行处理,那么这个量级还是非常大的。 一般是在本地处理流,然后发送到服务器。 例如,如果图像识别检测到相机处于活动状态,则可以将信息发送到服务器。 观看完流后,将流发送到服务器。

SRS如何使用多个CPU

SRS采用单进程单线程模型,可以避免线程切换的消耗,也可以避免并发和竞争情况,所以默认情况下,SRS只能使用1个CPU,即虽然机器有4个CPU,它可以运行到400%,但是SRS只能使用一个CPU来运行到100%。

如何扩展srs的并发能力,支持上万用户同时拉流

当然这是默认情况,有解决办法:

我们首先考虑单个源服务器如何使用多个进程,比如4CPU,单个SRS只能支持7K播放,我们可以将容量扩大4倍达到28K播放。 单个进程的部署结构如下:

阿里云服务器如何扩展_阿里云扩展数据盘_阿里扩展器云服务在哪

源站多进程部署结构如下:

阿里云服务器如何扩展_阿里扩展器云服务在哪_阿里云扩展数据盘

备注:这种部署结构只能扩展源站的播放能力,因为增加了新的Edge服务器,流最终必须返回到源站。

当然,如果这个结构部署到单台服务器上,就会变成上一章介绍的结构。 不同的是,上一章中的每个Edge服务器仍然是单个进程,并没有使用Reuse Port来扩展多个进程。 能力,这两种结构可以结合使用,如下图:

阿里扩展器云服务在哪_阿里云服务器如何扩展_阿里云扩展数据盘

备注:该结构中,每个Edge服务器上还部署了多个SRS Edge进程,从而可以利用边缘服务器的多核能力

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]