DotNetty 1.0 发布,希望不会太晚。

一、前言

通过1个月修改,今天dotnetty 发布了1.0 版本,虽然不是官方发布,但是我把最大的问题内存泄漏修复了,运行了7个小时,同时直播推流三个通道内存稳定在55mb左右,cpu 稳定在0.4%, 服务器只有4核16G,看如下图

HttpFlv:http://demo.kayakiot.cn:281/httpflv.html (黑衣人)

HttpFlv:http://demo.kayakiot.cn:281/httpflv1.html (大红包)

HttpFlv:http://demo.kayakiot.cn:281/httpflv2.html (鹿鼎记)

rtmp:rtmp://demo.kayakiot.cn:76/live1/livestream2 (黑衣人)

rtmp:rtmp://demo.kayakiot.cn:76/live1/livestream3 (大红包)

rtmp:rtmp://demo.kayakiot.cn:76/live1/livestream4(鹿鼎记)

注:测试服务器带宽只有8MB, httpflv 缓冲做的没有rtmp好,然后httpflv卡就多刷新几次

凯亚 (Kayak) 是什么?

凯亚(Kayak)是基于.NET8.0软件环境下的surging微服务引擎进行开发的, 平台包含了微服务和物联网平台。支持异步和响应式编程开发,功能包含了物模型,设备,产品,网络组件的统一管理和微服务平台下的注册中心,服务路由,模块,中间服务等管理。还有多协议适配(TCP,MQTT,UDP,CoAP,HTTP,Grpc,websocket,rtmp,httpflv,webservice,等),通过灵活多样的配置适配能够接入不同厂家不同协议等设备。并且通过设备告警,消息通知,数据可视化等功能。能够让你能快速建立起微服务物联网平台系统。

凯亚物联网平台:http://demo.kayakiot.cn:3100(用户名:fanly 密码:123456)

链路跟踪Skywalking V8:http://117.72.121.2:8080/

dotnetty:https://github.com/microsurging/DotNetty

surging 微服务引擎开源地址:https://github.com/fanliang11/surging(后面surging 会移动到microsurging进行维护)

二、发布nuget

然后大家可以通过nuget 进行下载安装, 源码地址:GitHub - microsurging/DotNetty

三、如何使用

Dotnetty 1.0版本 可以不需要修改,但是耗时的业务调用会占用线程池,会导致线程池线程耗尽,内存溢出。为了解决这个问题,在创建EventLoopGroup时候可以选择TaskSchedulerType.Alone任务调度,代码如下:

默认任务调度:

复制代码
              var bossEventExecutor = new MultithreadEventLoopGroup(1);
              var workEventExecutor = new MultithreadEventLoopGroup();

     
             //Libuv
                var dispatcher = new DispatcherEventLoopGroup();
                 bossEventExecutor = dispatcher;
                 workEventExecutor = new WorkerEventLoopGroup(dispatcher);

TaskSchedulerType.Alone任务调度:

复制代码
                  var   bossEventExecutor = new MultithreadEventLoopGroup(1,TaskSchedulerType.Alone);
                   var  workEventExecutor = new MultithreadEventLoopGroup(TaskSchedulerType.Alone);

//Libuv
                var dispatcher = new DispatcherEventLoopGroup(TaskSchedulerType.Alone);
                 bossEventExecutor = dispatcher;
                 workEventExecutor = new WorkerEventLoopGroup(dispatcher,TaskSchedulerType.Alone);

四、插件化

你可以开发好的模块插件,通过模块管理上传。

在插件管理界面,就能看到上传的插件,上传的就是第三方应用,你也可以修改ID,对应插件的ModuleType

然后你可以查看api ,就能通过swagger 进行查看

五、总结

后面会陆续推出视频中心等模块,敬请期待!

相关推荐
草履虫建模8 小时前
RuoYi-Cloud 微服务本地部署详细流程实录(IDEA + 本地 Windows 环境)
java·spring boot·spring cloud·微服务·云原生·架构·maven
Code季风11 小时前
深入理解 Redis 分布式锁:如何实现有效的过期时间和自动续期
redis·分布式·微服务
Code季风15 小时前
Redis 缓存:应对缓存雪崩、缓存击穿和缓存穿透
数据库·redis·分布式·后端·缓存·微服务·mybatis
●VON16 小时前
重生之我在暑假学习微服务第十一天《配置篇》+网关篇错误订正
java·学习·微服务·云原生·暑假
sg_knight1 天前
Spring Cloud Gateway全栈实践:动态路由能力与WebFlux深度整合
java·spring boot·网关·spring·spring cloud·微服务·gateway
草履虫建模1 天前
RuoYi OpenAPI集成从单体到微服务改造全过程记录
java·运维·vue.js·spring cloud·微服务·云原生·架构
Code季风1 天前
Redis 分布式锁深度解析:setnx 命令的核心作用与实现
redis·分布式·微服务
Code季风2 天前
分布式系统中的幂等性设计:从理论到实现的全面指南
redis·分布式·微服务
君科程序定做2 天前
容器 vs 虚拟机
微服务·云原生·容器·服务发现
曾经的三心草3 天前
微服务的编程测评系统10-竞赛删除发布-用户管理-登录注册
微服务·云原生·架构