SRS-DOLPHIN
单进程SRS支持7.5k并发,如果单机需要单机100K并发,可以使用多进程SRS,即SRS-DOLPHIN。目前测试SRS-DOLPHIN的测试数据是20K并发,理论上多进程的扩展性可以到达任意并发,只要你的CPU和网卡还有交换机够。而SRS-DOLPHIN不仅仅是高并发,还可以做容错,提高稳定性。只需要修改启动命令,兼容单进程的配置文件。
SRS为何做进程?有三个主要的因素:
100k目标:万兆和多万兆网络会在这几年使用起来,而SRS单进程对于网络扩展性不好,多进程是支持富余硬件资源最好的方式。就算是几个千兆网卡,多进程的效率比单进程也更高,涉及到linux的中断处理。
边缘热备:如果边缘挂掉了,客户端就断开,譬如7.5k个用户都在一个边缘上,那受影响的就是7.5k。如果边缘使用srs-dolphin,可以每个SRS只支持2.5k,3个进程支持7.5k,这样每个SRS挂掉只影响2.5k用户。
最简多进程方案:srs-dolphin是由外国的一个牛逼的朋友提供的一个多进程方案,使用和部署和单进程SRS一样,只是启动的命令不太一样而已,配置文件都一样。srs-dolphin更像是个进程管理器和容器,实现方式还是SRS单进程叠加。SRS会支持任何功能,只要能找到最简单方案。
SRS-DOLPHIN是流媒体边缘的最佳方案,现在有几个多进程的方案:
nginx:若SRS能输出HTTP-FLV,那么可以启动几个SRS边缘,再启动一个nginx反向代理,这样可以实现多进程,相当于一个本地小集群。粗步测试数据是,10k并发时nginx占用350%CPU。
go-sharp:这个是srs org提供的一个go实现的HTTP FLV反向代理,替代nginx的方案,主要支持SRS检测,负载均衡。粗步测试数据是,10k并发时go-sharp占用300%CPU。
srs-dolphin:这个是SRS多进程方案,支持基于SRS的RTMP和HTTP的多进程方案,不仅仅是HTTP FLV。粗步测试数据是,20k并发时srs-dolphin占用320%CPU。
为何SRS-DOLPHIN可以做到一倍的性能提升?因为SRS-DOLPHIN实现的是TCP层次的代理,不解析协议直接转发。
SRS-DOLPHIN的弱点就是不解析协议,所以无法做源站多进程。但是从业务逻辑上讲,源站7.5k并发足够了;如果一定要做源站多进程,譬如流就是很多时,有个朋友的情况就是100k个流,那么源站多进程也扛不住,必须使用多源站,也就是多个源站服务器,配合边缘路由实现。边缘路由也就是一个边缘SRS,知道一组源站SRS,知道哪个流应该回哪个源站;边缘路由不适合做成开源,涉及到的业务逻辑居多;观止已经在计划这个产品了。
下面是SRS-DOLPHIN在20k的测试数据:
GO-SHARP参考:https://github.com/simple-rtmp-server/go-sharp
SRS-DOLPHIN请参考:https://github.com/simple-rtmp-server/srs-dolphin
SRS-DOLPHIN相关推荐
- SRS之SrsConfig类
1. 类定义 1.1 SrsConfig 类 /** * the config service provider. * for the config supports reload, so never ...
- Ubuntu 14.04 64bit上编译安装simple-rtmp-server(srs)服务器
下面的操作完全按照参考文献[1]进行,请采用root用户登陆,我这里只是记录了一下我在Ubuntu 14.04上面编译安装的过程.以作今后参考.该篇文章显示了srs提供的一个demo实例,包括实时流的 ...
- java srs 推流_srs安装与ffmpeg推流
环境说明:ubuntu 16.04 当前目录为~/. 一. 下载git clone https://github.com/ossrs/srs.git 二.部署SRS 关闭防火墙,执行如下命令. ufw ...
- 利用正高Dolphin智能广告监测系统做好违法广告监测
随着社会经济文化事业的快速发展,广告媒体日益丰富,广告样式花样繁多.新型广告层出不穷,广告监管工作量大面广.难度加大,仅靠工商食药监部门人力监测难以面面俱到.实现有效监管. <新广告法>对 ...
- WSHPSRS-匹克选择列表生成器-SRS(R12.2.3)
匹克选择列表生成器-SRS(R12.2.3) --US Program:Pick Selection List Generation - SRS Short Name:WSHPSRS Appli ...
- ffmpeg 怎么处理udp音频_STREAM: srs 2.0release,ffmpeg实时转码udp流,出现只有音频没有视频的问题?...
环境: srs: 2.0release,编译参数 ./configure --disable-all --with-hls --with-ssl --with-http-server --prefix ...
- 用SRS和FFMPEG进行直播流转码
WIKI:https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG 一.直播流转码配置及说明 listen 19 ...
- 解决电脑无声和爆音问题的神器——SRS audio sandbox
通常来说,如果电脑突然没有了声音,一般并不是声卡烧坏(当然也有可能是这种情况.) 一般来说,我们会首先试一下直接重装声卡的驱动,这个直接用驱动人生或者驱动精灵这样的软件即可.如果重装了声卡的驱动之后发 ...
- SRS学习笔记7-SrsHttpServer
the http server, use http stream or static server to serve requests. 源代码位置: app\srs_app_http_conn.hp ...
- SRS前需求双向追溯解决方法
第一个问题,什么是SRS前的需求 SRS前的需求可以视为需求的原始素材,来自于客户的建议或要求,领导的意见,团队内部的点子都可以视为SRS前的需求.这些的陈述可能是凌乱的,没有结构的. 第二个问题,S ...
最新文章
- pyspark-mongo-input-output
- go package学习——os
- php中getdistance函数_php代码渗透测试 后门分析篇
- ubuntu上如何安装tomcat
- Google Analytics 搜索引擎来源
- linux 测试cpu计算圆周率_Linux下测试CPU性能
- Servlet CDI Example Analysis
- ClassNotFoundException和NoClassDefError之间的区别
- c#中的线程Thread
- iis由5.1变成5.0——怎么回事呢
- 基于ANSYS-APDL的简单静力学分析示例(悬臂梁)
- php ci 优化,CodeIgniter 性能优化
- 透视变换原理、相机成像、灭点
- 西西里2286. Stack Implementation
- 2k 幻14_ROG幻14经典版2K屏14寸
- 【线代NumPy】第八章 - 特征值和特征向量 | Eigenvalue and Eigenvector | 简述并提供代码
- java volatile
- 车载GNSS/INS/LiDAR坐标系定义与理解
- torch中manual_seed的作用
- 国际碳行动伙伴组织(ICAP)全球碳市场进展资料2019
热门文章
- 多数据源使用spring-data-jpa无法部署到JBoss As Server
- (三十)java多线程一
- fodera开机启动优化
- ThreadPool的使用
- 数据结构-线性表(栈与队列的特殊性)
- CodeForces - 787D - Legacy(线段树优化建图+最短路)
- CodeForces - 1293D Aroma's Search(暴力)
- HDU - 3085 Nightmare Ⅱ(双向bfs)
- maskrcnn还可以加网络吗_桃子加蜂蜜可以榨汁吗?桃子和蜂蜜可以一起吃吗?原来可以这样吃...
- 汇编指令prefix rep: