“这是我参与8月更文挑战的第11天,活动详情查看:8月更文挑战”
如何支持更多的人推流?如何支持更多的人观看?这本质上就是系统的水平扩展能力。
1、源站集群-更多推流
在SRS的角色中,Edge主要解决播放或下行的扩展能力,而Origin则是解决上行或推流的扩展能力,比如需要推1万路流。
1.1 Vhost方案
如下图所示:

此时需要终端指定不同的vhost
1.2 源站集群方案
基于Origin Cluster源站集群扩展源站,如下图所示:

两个Origin服务器之间会互相查询流,若Edge请求的流不在本源站上,会将Edge定向到有流的Origin
由于源站是流的最终所在地,所以他本质上是有状态的,两个源站并不是完全等价的。而边缘可以认为是合并回源的代理,两个Edge是没有差别的,它们并没有存储流的信息,都是通过源站获取流。
因此,推流的扩展能力,比播放的扩展能力,对系统的挑战是更大的。
通过Edge推流
不建议直接推流到Origin源,而是通过Edge推流到Origin

1.3 编写源站origin配置文件
The config for origin 19350:
# conf/origin.conf
listen 19350;
max_connections 1000;
daemon off;
pid objs/origin.cluster.serverA.pid;
srs_log_file ./objs/origin.cluster.serverA.log;
http_api {
enabled on;
listen 9090;
}
vhost __defaultVhost__ {
cluster {
# local: It's an origin server, serve streams itself.
# remote: It's an edge server, fetch or push stream to origin server.
mode lo

本文介绍了如何通过SRS的源站集群和边缘集群来提高并发推流和播放能力。源站集群通过Vhost和HTTP API实现流的分布式存储和查询,边缘集群则通过多进程和多CPU扩展播放能力。强调了推流到Edge而非直接到Origin,以及配置Edge以支持源站故障切换的重要性。
最低0.47元/天 解锁文章
4564

被折叠的 条评论
为什么被折叠?



