前言
这几天一直在优化测试dotnetty,代码是基于https://github.com/cuteant/SpanNetty,基础上修改优化的,然后发布搭建了分布式rtmp直播服务,内存一直稳定在70mb左右,然后大家可以下载进行测试,也可以观看直播推流的电影,一共有两部,一部是黑衣人,一部是大红包。还有要求性能比较高的,还是关闭链路式跟踪,一般可以用在调试测试和并发不高的系统上,微服务调试用上了链路跟踪大大减少了开发调试时间,就比如某个链路调用出现错误,可以点开查看相关日志,就可以跳到相关日志列表,然后点开某一条日志,就可以看到详细的报错信息



HttpFlv:http://117.72.121.2:281/httpflv.html (黑衣人)
HttpFlv:http://117.72.121.2:281/httpflv1.html (大红包)
rtmp:rtmp://117.72.121.2:76/live1/livestream2 (黑衣人)
rtmp:rtmp://117.72.121.2:76/live1/livestream3 (大红包)
凯亚 (Kayak) 是什么?
凯亚(Kayak)是基于.NET6.0软件环境下的surging微服务引擎进行开发的, 平台包含了微服务和物联网平台。支持异步和响应式编程开发,功能包含了物模型,设备,产品,网络组件的统一管理和微服务平台下的注册中心,服务路由,模块,中间服务等管理。还有多协议适配(TCP,MQTT,UDP,CoAP,HTTP,Grpc,websocket,rtmp,httpflv,webservice,等),通过灵活多样的配置适配能够接入不同厂家不同协议等设备。并且通过设备告警,消息通知,数据可视化等功能。能够让你能快速建立起微服务物联网平台系统。
凯亚物联网平台:http://117.72.121.2:3100(用户名:fanly 密码:123456)
链路跟踪Skywalking V8:http://117.72.121.2:8080/
surging 微服务引擎开源地址:https://github.com/fanliang11/surging(后面surging 会移动到microsurging进行维护)
搭建直播流媒体
下载地址:
通过网盘分享的文件:rtmp.zip
链接: https://pan.baidu.com/s/12dVChSd1K5Tu7ajv6FC98Q?pwd=hn9u 提取码: hn9u
以下是目录:
点击startup.bat 就能开启分布式直播推流

在bin 文件中有3.bat,4.bat ,里面是ffmpeg推流3.mp4和4.mp4,需要拷贝两部视频到本目录下,然后点击3.bat和4.bat(你也可以利用OBS Studio等直播软件进行推流)

以下是对应配置(可以通过surgingSettings.json进行修改)
|-----------|-------|-----------|-------------------------------------|----------|-------------|-------------|-------------------------------------------------------------------|
| 宿主机地址 | 宿主机端口 | 是否支持服务器推流 | 推流地址 | RtmpPort | HttpFlvPort | 文件目录 | httflv 文件 |
| 127.0.0.1 | 83 | 是 | live1/livestream2 live1/livestream3 | 76 | 8080 | rtmpserver | httpflv3.html(live1/livestream2) httpflv4.html(live1/livestream3) |
| 127.0.0.1 | 82 | 否 | live1/livestream2 live1/livestream3 | 77 | 8081 | rtmpserver1 | httpflv1.html(live1/livestream2) httpflv5.html(live1/livestream3) |
| 127.0.0.1 | 84 | 否 | live1/livestream2 live1/livestream3 | 74 | 8082 | rtmpserver2 | httpflv2.html(live1/livestream2) |
HttpFlv客户端页面
以下是测试结果,通过推流live1/livestream2,live1/livestream3, 打开6个httpflv 和1个rtmp, 运行1小时10分钟,内存一直稳定在70MB,CPU一直在0.5左右波动。

通过以上测试,直播推流已经非常稳定了,那么像抖音,快手只要推流做下压缩,帧率在12左右,那么推流大小应该在200kb/s 左右,然后10G带宽, 一台服务器可以支持8000在线观看直播,那么300台就能支持240万,按照正常是这样算的,如果加上还有压缩算法,弹性扩容,推荐流量,聊天,刷礼物,打PK,特效背景等一些功能就可能不止这些服务器,估计要上千台。
总结
以上是基于surging 做的分布式推流,这些能满足部分需要,如果需要强大的功能,如压缩算法,弹性扩容等功能请关注凯亚物联网平台,后续会添加流媒体管理。