SRS Forward集群

来源:互联网 发布:linux打开exe文件类型 编辑:程序博客网 时间:2024/06/16 00:16

官方WIKI:https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Forward

一、何为Forward

    Forward 翻译成中文是向前、前头的、发送等(来自google翻译),还有好多词性。

    在SRS中可以理解为把Master节点获得直播流广播给所有的Slave节点。我觉得广播这个词可能要比forward更容易理解。也可以理解为转发,即master把接收到的所有流都转发给Slave节点,即master节点由多少路直播流,那么在每个slave节点也会多少路直播流。

注:在SRS中还有另外一种集群方式,edge方式。注意两种方式的用词不同。

        在Forward模式中,中心节点叫Master,边缘节点叫Slave;

        在edge模式中,中心节点叫origin(源站),边缘节点叫做edge。

二、适用场景

    Forward适合搭建小型集群,为什么这么说呢?因为每个slave节点都和master节点有相同数量的直播流,那么请看下图(从右往左,1、2、3是步骤):


编码器推流给master,那么master就会Forward到每一个Slave。那么在slave节点上不论需不需要都会有master过来的流。试想一下,如果编码器的数量为10,那么master到slave之间的带宽就是:带宽=10 * slave的个数 *直播流码率,随着slave的增多,master的出口带宽会不断提高。而现实是,在某些slave节点其实根本没有人看……这样就造成了master到slave之间的带宽浪费。

    所以说Forward适合与搭建小型集群。那么大集群怎么破?----使用edge功能(且看下次分解)。

三、搭建负载均衡的直播流媒体系统




从负载均衡往后其实都是在一个内部环境中,通过负载均衡服务器来分流访问压力到不同的流媒体服务器。

 一)负载均衡设备的选择有很多:

财主:F5之类的商业解决方案,稳定、可靠、操作界面友好等等,缺点就是价格高,有钱人才能玩的起。

屌丝:LVS、Haproxy、Nginx(仅限于交付http stream),缺点就是需要自己各种配置,需要动手能力强等,优点就是不花钱,性能也不比商业解决方案差。

    这里要提醒一下,不论什么方式请打开ip_hash(不同的设备和软件称呼不同,但作用相同),即保持一个用户的访问总是被负载均衡到固定的后端服务器上,这样就可以避免很多的问题。 

 二)常见的2个中流,RTMP和HLS的交付方式:

    RTMP:只要编码器推流到master上即可,当用户访问负载均衡时,负载均衡服务器分配一个后端服务器为用户服务。

    HLS:编码器推流到master上,如果编码器推来的流不是h264+aac的话再master进行直播转码(非h264+aac不能切hls片),然后在slave上进行HLS切片。负载均衡服务器调度用户请求到一台后端服务器进行访问。 这里就需要注意了,一定要打开ip_hash。

四、模拟配置

 一)编码器推流(ffmpeg模拟)  

./ffmpeg -re -i "abc.rmvb" -vcodec libx264 -vprofile baseline -vb 800k -acodec libfdk_aac -ab 96000 -ar 48000 -ac 2 -f flv rtmp://SRS_Master_IP:1935/live/test 

 二)Master服务器配置

listen              1935;pid                 ./objs/srs.pid;max_connections     10240;vhost __defaultVhost__ {    gop_cache       on;        forward         192.168.1.6:1935 192.168.1.7:1935;}

 三)Slave服务器配置

listen              1935;pid                 ./objs/srs.1935.pid;max_connections     10240;vhost __defaultVhost__ {    gop_cache       on;}

五、播放流

    源站播放地址:

rtmp://SRS_Master_IP:1935/live/test

    Slave播放地址:

rtmp://SRS_Slave_IP:1935/live/test


转载自:https://my.oschina.NET/fengjihu/blog/416883

原创粉丝点击