🎉smart-mqtt v0.20 发布,这些改进让消息传输更可靠

科技资讯 投稿 5900 0 评论

1、smart-mqtt 简介

smart-mqtt,是 smartboot 组织下面向物联网的首款解决方案,它使用 Java 语言开发,提供高效、可靠的 MQTT Broker 服务

smart-mqtt 的独特优势在于大量设备接入的情况下,仍能保持低延迟和高吞吐量,满足物联网领域严苛的实时性需求。同时,smart-mqtt 为了最大限度地节省硬件成本,采用了高度优化的资源管理策略,降低了系统运行时的 CPU 和内存占用,使企业在保持高性能的同时,大幅降低运维成本。

smartboot 开源组织,一个容易被误认为是在 “重复造轮子” 的低调组织。曾获得 2020 年度 OSC 中国开源项目「优秀 Gitee 组织 」荣誉。

该组织内的明星项目包括:

    smart-socket
    历时 5 年精炼出 2 千多行代码,轻松实现百万级长连接的 AIO 通信框架。

  • smart-http
    基于 smart-socket 实现的 HTTP/1.1 web 服务。

  • smart-servlet
    基于 smart-http 实现的 Servlet 3.1 容器服务。

  • smart-mqtt
    基于 smart-socket 实现的 MQTT 3.1.1/5.0 Broker&Client 服务。

  • smart-flow
    一款具备可观测性的轻量级业务编排框架。

组织地址:?https://smartboot.tech/
代码仓库:?https://gitee.com/smartboot

2、 版本更新

【社区版】

    smart-socket 升级至1.5.27。

  1. snakeyaml 升级至2.0。

  2. 修复了消息编解码过程中的bug,提高消息传输的可靠性。

  3. 优化了消息解码异常触发的状态机,降低误判概率。

  4. 加强了消息编解码字节边界的检验,避免数据解析错误。

  5. 改进了内存管理策略,减少通信过程中的内存消耗。

  6. 修复了MQTT 5.0协议实现中的遗嘱消息和QoS2通信编解码问题。

  7. 对遗嘱消息模型字段进行了优化,提高代码可读性。

  8. 引入社区同学贡献的redis桥接模块,提供更多扩展选项。

  9. 为MQTT Client提供更高效的pulbish能力,提升性能表现。

【企业版】

    补充表结构索引,解决慢sql问题。

  1. 新增账户管理接口

  2. Broker启动时重置旧连接状态。

3、性能测试报告

    场景一:
    10个publisher每隔1毫秒发送payload为128字节的消息,这些消息分布在128种topic下,有2000个subscriber订阅这些topic的消息。

  smart-mqtt emqx
QoS0 159W/s 20W/s
QoS1 105W/s 20W/s
QoS2 70W/s 20W/s

    场景二:

2000个publisher每隔1毫秒发送10个payload为128字节的消息,这些消息分布在128种topic下。

  smart-mqtt emqx
QoS0 89W/s 43W/s(间歇性不可用)
QoS1 50W/s 9W/s
QoS2 40W/s 6W/s

因为不了解emq的调优策略,测试过程或许存在不公平因素,结果仅供参考。

4、如何获取 smart-mqtt

4.1 源码

    主仓库:https://gitee.com/smartboot/smart-mqtt

  • 镜像同步:https://github.com/smartboot/smart-mqtt

4.2 Maven 依赖

    mqtt broker

<dependency> <groupId>org.smartboot.mqtt</groupId> <artifactId>smart-mqtt-broker</artifactId> <version>0.20</version> </dependency>

    mqtt client

<dependency> <groupId>org.smartboot.mqtt</groupId> <artifactId>smart-mqtt-client</artifactId> <version>0.20</version> </dependency>

4.3 发行包

    社区版
    打开浏览器访问:https://gitee.com/smartboot/smart-mqtt/releases下载最新版。

  • 企业版
    成为项目赞助商,单独提供发行包(具体见下文)。

5. 关于 smart-mqtt 企业版

smart-mqtt 目前是由个人开发者在业余时间维护,暂无提供商业化服务的计划。

出于项目的可持续发展需要,我们在 smart-mqtt 社区版的基础上,丰富了一些企业级功能。如果贵公司认可 smart-mqtt 的价值,可以通过成为赞助商获得企业版授权。

功能特性

    企业版 License 认证。授权过期将无法启动服务,但并不会因授权过期影响正在运行的 Broker。

  1. MQTT over WebSocket。

  2. Broker 集群部署。

  3. 管理后台

  4. ChatGPT OpenAPI 插件

  5. 指标数据持久化(H2、MySQL)

  6. 未完待续..。

赞助商等级

  青铜赞助商 白银赞助商 黄金赞助商 铂金赞助商
赞助条件 加入企业支持计划 500 元 / 年 1500 元 / 年 5000 元 / 年
License 有效期 1 年 1 年 1 年 1 年
部署指导 - 1 次 1 次 不限次数
Logo 展示位 - 小号 中号 大号
首页 Logo 展示 - - -
技术支持 文档 邮件 /ISSUE 微信 / QQ / 邮件 微信 / QQ / 邮件

白银赞助商的价值:

    成本:500 元 / 年,相当于一名初中级程序员一天的薪资。

  • 产出效益:

    • 增加品牌曝光率。

    • 节省投入在 Sass 云服务中的巨额资费。

    • 结交更多物联网领域的从业者。

成为赞助商遵循双方自愿原则,我们会在能力范围内尽可能提供 smart-mqtt 相关的技术支持。与此同时因时间和精力有限,我们也并不希望由此带来额外的负担,影响到项目的正常迭代。

所以,如有疑问尽量通过 ISSUE 交流,或者通过 ISSUE 和官方文档自助寻找答案,还望理解~~

ISSUE:?https://gitee.com/smartboot/smart-mqtt/issue

编程笔记 » 🎉smart-mqtt v0.20 发布,这些改进让消息传输更可靠

赞同 (16) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽