SRS Forward集群

官方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功能(且看下次分解)。

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

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

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

  1. 财主:F5之类的商业解决方案,稳定、可靠、操作界面友好等等,缺点就是价格高,有钱人才能玩的起。
  2. 屌丝: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
时间: 2024-07-31 10:05:45

SRS Forward集群的相关文章

利用heartbeat的ldirectord实现ipvs的高可用集群构建

集群架构拓扑图: 网络规划: 两台LVS server:(两台LVS也可以为用户提供错误页面) node1:172.16.31.10 node2:172.16.31.11 VIP:172.16.31.180 ipvs规则内包含2台Real Server:(后面的RS指的就是后端的web服务器) rs1:172.16.31.13 rs2:172.16.31.14 我们还需要错误页面提供者:我们选择LVS作为sorry server,所有的real server不可用时就指向这个sorry serv

linux集群系列(3) --- LVS之负载均衡集群DR实例

一.简介     1.1.  负载均衡集群:LB (load balancing) LVS 是linux virtual server 的简写,即linux的虚拟服务器,是一个虚拟的服务器集群系统.ip负载均衡技术是在负载调度器的实现技术中效率最高的,在已有的ip负载均衡技术中,主要通过网络地址转换(即VS/NAT 技术).由于使用nat技术会使分派器成为瓶颈,所以提出了通过ip隧道实现虚拟服务器(即VS/TUN)和通过直接路由实现虚拟服务器的方法即VS/DR. VS/NAT.VS/TUN和VS

Docker 集群环境实现方式

Docker 集群环境实现的新方式 近几年来,Docker 作为一个开源的应用容器引擎,深受广大开发者的欢迎.随着 Docker 生态圈的不断建设,应用领域越来越广.云计算,大数据,移动技术的快速发展,加之企业业务需求的不断变化,紧随技术更新的步伐,导致企业架构要随时更改以适合业务需求.当前,越来越多的公司都已将以 Docker 为代表的容器技术用于企业级业务平台,比如:腾讯,京东,美团,新浪,阿里巴巴等互联网公司.数据的安全.Docker 容器的稳定运行是众多用户关注的,这就要求我们提供一套行

3-1 LVS-NAT集群

---- (整理)By 小甘丶 什么是集群: 集群是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.(Cluster就是一组计算机,它们作为一个整体向用户提供一组网络资源.这些单个的计算机系统就是集群的节点node). LVS: Linux Virtual Server的简写,意即Linux虚拟服务器 是一个虚拟的服务器集群系统,此项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. 集群宗旨: 可伸缩性(Scalability):

LVS-DR模式的配置及Heartbeat+Ldirectord+DR高可用负载均衡集群的搭建

主机环境 redhat6.5 64位 实验环境 服务端1 ip172.25.25.113   主机名:server3.example.com         服务端2 ip 172.25.25.114   主机名:server4.example.com          调度端2 ip 172.25.25.112   主机名:server2.example.com         调度端1 ip 172.25.25.111   主机名:server1.example.com 防火墙状态:关闭 虚

LVS DR集群

原理:LVS DR(director Routing)技术利用了Internet服务的非堆成特带你,调度器只负责调度Client发出的请求, 而服务器realserver直接将响应结果发挥给Client,因此相对LVS NAT方式而言可以提高整个集群数据包的吞吐量.关 于LVS DR的搭建架构应满足:电镀漆和服务器在物理上有一个网卡通过局域网链接,VIP地址被电镀漆和服务器组共享, 电镀漆配置的VIP地址对外部是可见的,用于接收虚拟服务的请求报文.把所有服务器的VIP地址配置在各自的NOn-AR

keepalived实现LVS集群的高可用(1)

HA集群:高可用集群: 实现方式:vrrp协议和ais完备HA集群 vrrp可以由keepalived实现 ais可以由heartbeat和corosync vrrp协议:虚拟冗余路由协议 VRRP为虚拟路由冗余协议,目的就是为了解决静态路由单点故障问题.在一个VRRP虚拟路由器中,有多台物理的VRRP路由器,但是这多台的物理的机器并不能同时工作,而是由一台称为MASTER的负责路由工作,其它的都是BACKUP,MASTER并非一成不变,VRRP让每个VRRP路由器参与竞选,最终获胜的就是MAS

【LVS】负载均衡集群NAT模式

LVS (Linux Virtual Server)是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.LVS可以实现LINUX平台下的简单负载均衡. 其中LVS/NAT是一种最简单的方式,所有的RealServer只需要将自己的网关指向Director即可. LVS负载均衡的NAT模式 一.实验准备 在VMware Workstation虚拟机环境下,准备三台服务器,一台作为director, 两台作为real server. 二.网络配置 director需要配置两

Apache整合Tomcat、集群

1.1     使用mod_proxy整合 使用mod_proxy整合Tomcat需要我们开启Apache的代理功能,代理功能的开启可以通过在Apache的conf/httpd.conf文件中将如下内容前的“#”号去除,这样Apache就能在运行的时候加载mod_proxy模块了,从而开启了Apache的代理功能. #LoadModule proxy_module modules/mod_proxy.so 开启了mod_proxy之后我们还需要选择一个协议来作为Apache代理Tomcat的协议