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 进行查看

五、总结

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

相关推荐
hez20101 小时前
C# 15 类型系统改进:Union Types
c#·.net·.net core
全栈软件开发2 小时前
企业年报服务系统/小微服务助手小程序源码带搭建教程
微服务·年报小程序源码
亚历克斯神6 小时前
Java 代码质量与静态分析:2026 实战指南
java·spring·微服务
行者-全栈开发11 小时前
拆解高可用CRM网站的容灾设计与云原生实践
微服务·云原生·异地多活·监控告警·高可用设计·crm架构·容灾演练
java干货11 小时前
在微服务里造一个微缩版 Kafka:Spring Boot 整合 Redis Stream 全指南
spring boot·微服务·kafka
一个有温度的技术博主12 小时前
微服务技术选型:Dubbo、Spring Cloud与Spring Cloud Alibaba深度对比
spring cloud·微服务·dubbo
一个有温度的技术博主1 天前
微服务4:Spring Cloud 微服务实战:如何实现跨服务数据组装?
spring cloud·微服务·架构
亚历克斯神1 天前
Java 云原生开发最佳实践:构建现代化应用
java·spring·微服务
codeejun1 天前
每日一Go-52、Go微服务--请求超时与熔断策略实战
微服务·golang·iphone
亚历克斯神1 天前
Java 23 虚拟线程进阶:深度探索与实战
java·spring·微服务