1、smart-mqtt 简介
随着物联网技术的发展,越来越多的企业开始重视物联网领域的开发和应用。但是,如何搭建稳定、可靠的物联网服务,是众多企业面临的难题。
smart-mqtt,是smartboot组织下面向物联网的首款解决方案,它使用Java语言开发,提供高效、可靠的MQTT Broker服务。
与其他类似的MQTT解决方案相比,smart-mqtt的主要优点在于其高度可扩展性和高效性。通过引入自研通信框架 smart-socket,利用异步非阻塞I/O操作实现高效的消息传递。同时,smart-mqtt 还支持集群部署,可以轻松应对高并发的消息传递和数据处理。
另外,smart-mqtt还提供了完善的监控和管理功能,可以帮助企业更好地管理和维护物联网服务。管理员可以通过smart-mqtt的管理系统实时监控消息服务器、客户端、主题等信息,为企业提供更精细的管理服务。
总的来说,smart-mqtt是一款针对性强、性能优异、易用性高的MQTT Broker服务。无论企业是从零开始搭建物联网系统,还是想要升级现有应用,smart-mqtt 都是一款可靠的选择。smart-mqtt将帮助企业以较低的成本构建稳定、高效的物联网服务,助力万物互联互通的梦想成为现实。
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-mqtt发布了v0.16版本,在性能方面有了显著的提升,这对于用户来说是非常有吸引力的,相交同类产品也是极具竞争力的。然而,为了充分发挥Broker服务的性能,我们进行了一次几乎是“破坏性”的重构。虽然对性能的提升产生了积极的作用,但同时也缺失了部分服务可靠性。
为了弥补这些可靠性问题,我们决定从smart-mqtt v0.17版本开始,通过几个小版本的迭代,对内部代码进行更详细的测试和评估,以确保系统的稳定运行。
本次更新内容:
-
通过引入smart-socket的插件化机制,以更低的性能损耗实现消息超时重发。
-
修复此前版本引入的topic取消订阅不生效的bug。
-
网络断开连接后即时中断消息推送,减少不必要的尝试。
-
MQTT Client 的topic订阅与取消订阅请求纳入飞行队列管理。
-
重构部分消息模型。
-
重构飞行队列,提供更加完善的Push能力。
-
更合理的日志输出。
3、性能测试报告
-
场景一:
10个publisher每隔1毫秒发送payload为128字节的消息,这些消息分布在128种topic下,有2000个subscriber订阅这些topic的消息。
smart-mqtt | emqx | |
---|---|---|
QoS0 | 150W/s | 18W/s |
QoS1 | 97W/s | 18W/s |
QoS2 | 70W/s | 17W/s |
-
场景二:
2000个publisher每隔1毫秒发送10个payload为128字节的消息,这些消息分布在128种topic下。
smart-mqtt | emqx | |
---|---|---|
QoS0 | 26W/s | 19W/s |
QoS1 | 23W/s | 8W/s |
QoS2 | 24W/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.17</version> </dependency>
-
mqtt client
<dependency> <groupId>org.smartboot.mqtt</groupId> <artifactId>smart-mqtt-client</artifactId> <version>0.17</version> </dependency>
4.3 发行包
-
社区版
打开浏览器访问:https://gitee.com/smartboot/smart-mqtt/releases下载最新版。 -
企业版
成为项目赞助商,单独提供发行包(具体见下文)。
5. 关于 smart-mqtt 企业版
smart-mqtt 目前是由个人开发者在业余时间维护,暂无提供商业化服务的计划。
出于项目的可持续发展需要,我们在 smart-mqtt 社区版的基础上,丰富了一些企业级功能。如果贵公司认可 smart-mqtt 的价值,可以通过成为赞助商获得企业版授权。
功能特性
-
企业版 License 认证。授权过期将无法启动服务,但并不会因授权过期影响正在运行的 Broker。
-
MQTT over WebSocket。
-
Broker 集群部署。
-
管理后台
-
ChatGPT OpenAPI插件
-
指标数据持久化(H2、MySQL)
-
未完待续..。
赞助商等级
青铜赞助商 | 白银赞助商 | 黄金赞助商 | 铂金赞助商 | |
---|---|---|---|---|
赞助条件 | 加入企业支持计划 | 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/issues