微信多群直播服务器,基于srs直播群集架构之一路rtmp推流,多rtmp拉流

2024-03-25 01:50

本文主要是介绍微信多群直播服务器,基于srs直播群集架构之一路rtmp推流,多rtmp拉流,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于srs直播群集架构之一路rtmp推流,多rtmp拉流

一、架构设计

1、基础网络设施架构

2、一台目标推流的服务器,负责直播的源存储转发(origin)

3、一台loadbalance服务器,负责边界拉流服务器的负载调度(loadbalance)

4、两台realserver服务器,参与负载调度的边界拉流服务器(edge)

5、参与负载调度的服务器可以横向扩展

6、架构设计图,见下图

a09aefb4e6a5f3f6cdb2abf83a89bccb.png

二、环境说明

所有服务器系统:centos-6.7-x86_64 Linux内核2.6.32

推流系统:网络摄像头作为视频源(rtsp),obs采集视频并推流(rtmp)

直播服务器软件: srs(simple-rtmp-server) SRS-CentOS6-x86_64-2.0.205.zip

loadbalance软件: ipvsadm-1.26-4.el6.x86_64 && keepalived-1.2.13-5.el6_6.x86_64

三、系统实现

1、推流服务器配置,即srs-origin

网卡配置:eth2:172.16.1.207/24

srs服务器配置:

a.安装srs服务器,默认安装后路径 /usr/local/srs

cd  /usr/local/src

unzip SRS-CentOS6-x86_64-2.0.205.zip

./ INSTALL

b.修改配置文件ln -s /usr/local/srs /etc/srs

vim origin.conf

listen              1935;

max_connections     1000;

pid                 objs/origin.pid;

srs_log_file        ./objs/origin.log;

vhost __defaultVhost__ {

gop_cache       off;

queue_length    10;

min_latency     on;

mr {

enabled     off;

}

mw_latency      100;

tcp_nodelay     on;

}

将/etc/init.d/srs 启动脚本中srs.conf  修改为origin.conf

c.启动srs服务

service srs start

推流和拉流测试rtmp://172.16.1.228/live/livestream

2、loadbalance服务器配置,即loadbalance

网卡配置eth2:172.16.1.208/24  eth2:0:172.16.1.200/24

网络参数配置:vim /etc/sysctrl.conf  修改 net.ipv4.ip_forward = 1

安装调度器软件ipvsadm&&keepalived :yum install ipvsadm keepalived -y

配置keepalived:vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

}

notification_email_from keepalived@localhost

#smtp_server 192.168.200.1

#smtp_connect_timeout 30

#router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state MASTER

interface eth2

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

172.16.1.200

}

}

virtual_server 172.16.1.200 1935 {

delay_loop 6

lb_algo rr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP

real_server 172.16.1.211 1935 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

real_server 172.16.1.207 1935 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

}

启动服务和保存配置:service network restart  service ipvsadm start   service keepalived start

3、realserver1服务器配置,即srs-edge1

网卡配置:eth2:172.16.1.211/24  lo:0:172.16.1.200/32

网络参数配置:vim /etc/sysctrl.conf  修改 net.ipv4.ip_forward = 1  添加                                                                                                                   net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

添加本地路由:route add -host 172.16.1.200 dev lo:0

srs服务器配置:

a.安装srs服务器,默认安装后路径 /usr/local/srs

cd  /usr/local/src

unzip SRS-CentOS6-x86_64-2.0.205.zip

./ INSTALL

b.修改配置文件ln -s /usr/local/srs /etc/srs

vim edge.conf

listen              1935;

max_connections     1000;

pid                 objs/edge.pid;

srs_log_file        ./objs/edge.log;

vhost __defaultVhost__ {

mode            remote;

origin          172.16.1.228:1935;

}

将/etc/init.d/srs 启动脚本中srs.conf  修改为edge.conf

c.启动srs服务,并重启网卡服务

service srs start  service network restart

4、realserver2服务器配置,即srs-edge2

网卡配置:eth2:172.16.1.207/24  lo:0:172.16.1.200/32

网络参数配置:vim /etc/sysctrl.conf  修改 net.ipv4.ip_forward = 1  添加                                                                                                                   net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

添加本地路由:route add -host 172.16.1.200 dev lo:0

srs服务器配置:

a.安装srs服务器,默认安装后路径 /usr/local/srs

cd  /usr/local/src

unzip SRS-CentOS6-x86_64-2.0.205.zip

./ INSTALL

b.修改配置文件ln -s /usr/local/srs /etc/srs

vim edge.conf

listen              1935;

max_connections     1000;

pid                 objs/edge.pid;

srs_log_file        ./objs/edge.log;

vhost __defaultVhost__ {

mode            remote;

origin          172.16.1.228:1935;

}

将/etc/init.d/srs 启动脚本中srs.conf  修改为edge.conf

c.启动srs服务,并重启网卡服务

service srs start  service network restart

四、系统测试

最终群集结果:

单路推流服务器地址:rtmp://172.16.1.228/live/streamlive

多路拉流服务器地址:rtmp://172.16.1.200/live/streamlive

这篇关于微信多群直播服务器,基于srs直播群集架构之一路rtmp推流,多rtmp拉流的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843488

相关文章

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

NFS实现多服务器文件的共享的方法步骤

《NFS实现多服务器文件的共享的方法步骤》NFS允许网络中的计算机之间共享资源,客户端可以透明地读写远端NFS服务器上的文件,本文就来介绍一下NFS实现多服务器文件的共享的方法步骤,感兴趣的可以了解一... 目录一、简介二、部署1、准备1、服务端和客户端:安装nfs-utils2、服务端:创建共享目录3、服

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

Python如何实现 HTTP echo 服务器

《Python如何实现HTTPecho服务器》本文介绍了如何使用Python实现一个简单的HTTPecho服务器,该服务器支持GET和POST请求,并返回JSON格式的响应,GET请求返回请求路... 一个用来做测试的简单的 HTTP echo 服务器。from http.server import HT

如何安装 Ubuntu 24.04 LTS 桌面版或服务器? Ubuntu安装指南

《如何安装Ubuntu24.04LTS桌面版或服务器?Ubuntu安装指南》对于我们程序员来说,有一个好用的操作系统、好的编程环境也是很重要,如何安装Ubuntu24.04LTS桌面... Ubuntu 24.04 LTS,代号 Noble NumBAT,于 2024 年 4 月 25 日正式发布,引入了众

如何提高Redis服务器的最大打开文件数限制

《如何提高Redis服务器的最大打开文件数限制》文章讨论了如何提高Redis服务器的最大打开文件数限制,以支持高并发服务,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录如何提高Redis服务器的最大打开文件数限制问题诊断解决步骤1. 修改系统级别的限制2. 为Redis进程特别设置限制

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。