srs系列九——源站+边缘站集群模式

一、集群架构图:

(1)自己部署时环境部署集群
srs系列九——源站+边缘站集群模式_第1张图片

(2)srs官网架构图
srs系列九——源站+边缘站集群模式_第2张图片

二、 部署方案—源站集群+edge集群

Srs其他配置不在此详细列出,以下仅涉及集群配置
源站集群基本配置如下:

vhost __defaultVhost__ {
     
    cluster {
     
        #集群的模式,对于源站集群,值应该是local。
        mode            local;
        #是否开启源站集群
        origin_cluster  on;
        #源站集群中的其他源站的HTTP API地址
        coworkers       172.16.3.5:1985;
    }
}
边缘站集群基本配置:
cluster {
     
        #集群的模式,对于边缘集群,值应该是remote。
        mode            remote;
        #源站集群中所有源站流地址
        origin          172.16.3.5:1935 172.16.3.6:1985;
    }

三、说明+实操结果

(1) RTMP流,实操结果:
(a) 任一源站推流,可在任一边缘拉流。
(b) 任一边缘推流,可在其中一个源站和任一边缘拉流。
(c) 源站与源站不可获取流。
说明:
(a) 边缘服务器,就是边缘直播缓存服务器,边缘edge服务器就是源站的缓存。
(b) 播放边缘上的流时,edge会回源拉流,推流到edge上时,edge会直接将流转发给源站。
(c) 配置多个源站,在故障时会切换到下一个源站。
(d) 下图为源站的原理(推流端与源站集群是无负载均衡的,此处可在业务层实现):
srs系列九——源站+边缘站集群模式_第3张图片

(2) GB28181
(a) 源站配置gb28181,推流到源站,任一edge可拉流。
(b) Edge配置gb28181,推流到edge,源站及edge均无法拉流。(边缘无流,只有在拉流的时候才会从源站取流。)

(3) HLS切片
(a) 源站开启hls,edge未开启hls,推流到源站时,即在源站产生ts文件,从edge拉流未在edge产生ts文件。
(b) 源站开启hls,edge开启hls,推流到源站时,即在源站产生ts文件,从edge拉流在edge产生ts文件。
(c) 源站未开启hls,edge开启hls,推流到源站时,在源站未产生ts文件,从edge拉流在edge产生ts文件。
(d) edge开启hls,推流到edge时,在源站产生ts文件,从edge拉流在edge产生ts文件。(继续印证边缘无流,源站存流。)
说明:Edge指的是RTMP边缘,也就是说,配置为Edge后,流推送到源站(Origin)时,Edge不会切片生成HLS。HLS切片配置在源站,只有源站会在推流上来就产生HLS切片。边缘只有在访问时才会回源(这个时候,也会生成HLS,但单独访问边缘的HLS是不行的)。

(4) 回调功能
(a) 源站配置回调,edge未配置回调:往源站推流,edge拉流,根据源站配置进行回调。
(b) 源站未配置回调,edge配置回调:往源站推流,edge拉流,根据edge配置进行回调。(仅有拉流和hls回调)。
(c) 源站配置回调,edge配置回调:往源站推流,edge拉流,源站及edge回调配置均生效。
(d) 源站配置回调,edge配置回调:往edge推流,edge拉流,源站及edge回调配置均生效。此处当前流媒体架构发现不兼容处:往edge推流,在源站回调时,鉴权无法通过。

说明:源站及edge回调配置不冲突,各论各的。

edge站配置中有以下参数:
srs系列九——源站+边缘站集群模式_第4张图片
此参数解释可以看出:打开之后,edge的所有连接都会转发到源站进行鉴权,但是鉴权的更好的方式是通过edge回调鉴权。但如果想要通过源站进行鉴权,则需要此参数。
实操结果:开不开这个参数,只要源站设置回调鉴权,edge的推拉流均会从源站回调,且拉流无需鉴权,所以此参数可以不打开。

(5) WebRTC
(a) 推流到源站,此源站支持播放rtc,edge不支持rtc。
(b) 推流到edge,源站及edge均不支持rtc播放。
说明:当前srs集群不支持webRTC功能。

你可能感兴趣的:(srs直播,gb28181,hls直播,srs)