SRS流媒体服务器——Edge集群搭建

SRS流媒体服务器——Edge集群搭建

目录

  1. edge原理
  2. dege配置

SRS安装部署相关内容:

  1. SRS流媒体服务器——单机环境搭建和源码目录介绍
  2. SRS流媒体服务器——Forward集群搭建和源码分析
  3. SRS流媒体服务器——Edge集群搭建
  4. SRS流媒体服务器——WebRTC推拉流演示
  5. SRS流媒体服务器——SRS4.0 WebRTC⼀对⼀通话环境搭建与逻辑分析

SRS部分源码分析相关内容:

  1. SRS流媒体服务器——基本流程简单分析
  2. SRS流媒体服务器——RTMP端⼝监听逻辑分析
  3. SRS流媒体服务器——RTMP推流、拉流创建连接
  4. SRS流媒体服务器——服务器读取RTMP推流数据
  5. SRS流媒体服务器——服务器给RTMP拉流端转发数据

1. edge原理

  1. SRS的Edge主要解决⼏条流有⼤量播放请求的场景,⽐如⼀个流有上万⼈观看。

  2. SRS的Edge能对接所有的标准RTMP源站服务器。

  3. Edge⼀般负载⾼,SRS⽀持的并发⾜够跑满千兆⽹带宽了。
    在这里插入图片描述

  4. Edge的主要应⽤场景:

    1. CDN/VDN⼤规模集群,客户众多流众多需要按需回源。
    2. ⼩规模集群,但是流⽐较多,需要按需回源。
    3. ⻣⼲带宽低,边缘服务器强悍,可以使⽤多层edge,降低上层BGP带宽。
  5. 注意:edge可以从源站拉流,也可以将流转发给源站。

    1. 即播放edge上的流时,edge会回源拉流;推流到edge上时,edge会直接将流转发给源站。
  6. 若只需要中转流给源站,不必⽤forward,直接使⽤edge模式即可。

    1. 可以直接⽀持推流和拉流的中转,简单快捷。
    2. Forward应⽤于⽬标服务器是多个,譬如将⼀路流主动送给多路服务器。
    3. edge虽然配置了多台服务器,但是只⽤了⼀台,有故障时才切换。
  7. 注意:优先使⽤edge,除⾮知道必须⽤forward,才使⽤forward。

1. edge基本概念

  1. 边缘edge服务器,就是边缘直播缓存服务器,配置时指定为remote模式和origin(指定⼀个或多个源站IP),这个边缘edge服务器就是源站的缓存了。
  2. 当⽤户推流到边缘服务器时,边缘直接将流转发给源站。
    1. 譬如源站在北京BGP机房,湖南有个 电信ADSL⽤户要推流发布⾃⼰的直播流,要是直接推流到北京BGP可能效果不是很好,可以在湖南电信机房部署⼀个边缘,⽤户推流到湖南边缘,边缘转发给北京源站BGP。
  3. 当⽤户播放边缘服务器的流时,边缘服务器看有没有缓存,若缓存了就直接将流发给客户端。 若没有缓存,则发起⼀路回源链接,从源站取数据源源不断放到⾃⼰的缓存队列。
    1. 即多个客户端连接到边缘时,只有⼀路回源。这种结构在CDN是最典型的部署结构。
    2. 譬如北京源站, 在全国32个省每个省都部署了10台服务器,⼀共就有320台边缘,假设每个省1台边缘服务器都有 2000⽤户观看,那么就有64万⽤户,每秒钟集群发送640Gbps数据。
    3. ⽽回源链接只有320个, 实现了⼤规模分发。
  4. 边缘edge服务器,解决⼤并发问题产⽣的分布式集群结构。
  5. SRS的边缘可以指定多个源站, 在源站出现故障时会⾃动切换到下⼀个源站,不影响⽤户观看,具有最佳的容错性,⽤户完全不会觉察。

2. dege配置

1. 编写SRS源站配置文件

vim  conf/origin.conf 

listen              1935;
max_connections     1000;
pid                 ./objs/origin.pid;
daemon              off;	#日志打印在前台
srs_log_tank        console;
vhost __defaultVhost__ {
}

2. 编写SRS边缘配置文件

  1. 复制edge.conf
cp conf/edge.conf conf/edge1.conf
cp conf/edge.conf conf/edge2.conf
  1. 修改conf/edge1.conf配置文件
vim conf/edge1.conf

listen              19350;
max_connections     1000;
pid                 objs/edge1.pid;
daemon              off;        #日志打印在前台
srs_log_tank        console;
vhost __defaultVhost__ {
    cluster {
        mode            remote;
        origin          127.0.0.1:1935;
    }
}
  1. 修改conf/edge2.conf配置文件
listen              19351;
max_connections     1000;
pid                 objs/edge2.pid;
daemon              off;        #日志打印在前台
srs_log_tank        console;
vhost __defaultVhost__ {
    cluster {
        mode            remote;
        origin          127.0.0.1:1935;
    }
}

3. 启动SRS

  1. 启动SRS源站和边缘节点
./objs/srs -c conf/origin.conf
./objs/srs -c conf/edge1.conf
./objs/srs -c conf/edge2.conf
  1. 验证是否启动成功:ps -ef | grep srs

4. 启动推流编码器

  1. 推流可以往源站推流,也可以往边缘节点推流
源站推流:ffmpeg -re -i source.200kbps.768x320.flv -vcodec copy -acodec copy -f flv -y rtmp://8.141.75.248/live/livestream
边缘节点1推流:ffmpeg -re -i source.200kbps.768x320.flv -vcodec copy -acodec copy -f flv -y rtmp://8.141.75.248:19350/live/livestream
边缘节点2推流:ffmpeg -re -i source.200kbps.768x320.flv -vcodec copy -acodec copy -f flv -y rtmp://8.141.75.248:19351/live/livestream

5. 观看RTMP流

  1. 源站RTMP流地址为:rtmp://8.141.75.248/live/livestream
  2. 边缘RTMP流地址为:
    1. rtmp://8.141.75.248:19350/live/livestream
    2. rtmp://8.141.75.248:19351/live/livestream
  3. 可以用ffplay、VLC或者srs在线播放器
观看主SRS的流:ffplay rtmp://8.141.75.248/live/livestream
观看从1 SRS的流:ffplay rtmp://8.141.75.248:19350/live/livestream
观看从2 SRS的流:ffplay rtmp://8.141.75.248:19351/live/livestream
  1. 注意:主SRS默认使用1935端口,从SRS使用的是19350,19351端口,需要开启,不然无法拉流。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值