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

2023-07-16 1369阅读

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

推流的能力一般也称为接收流的能力,因为推流就是客户端推流到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就相当于在客户端做了负载均衡。 系统结构比较简单。 缺点是企业意识不强。

如果业务不以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%。

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

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

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

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

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

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

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

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

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

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]