1、smart-mqtt 简介
smart-mqtt 是用 java 语言开发的 MQTT Broker 服务,也是 smartboot 组织下首款真正意义上面向物联网的解决方案。旨在帮助企业以较低的成本快速搭建稳定、可靠的物联网服务,助力万物互联互通。
![]()
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 的QoS_2性能如何?
此前通过自研的压测工具仅仅试验了QoS_0,且性能表现非常良好,从而下意识认为Qos_2的性能表现理论上会是QoS_0的四分之一。
然而现实情况却是Qos_0轻松破百万,Qos_2连破10万都很艰难。再一次被经验主义狠狠打脸了。
历经数周的推敲和重构,smart-mqtt终于在性能上有了新的突破。实测效果如下:
| |
smart-mqtt |
emqx |
| QoS0 |
120W/s |
17W/s |
| QoS1 |
140W/s |
17W/s |
| QoS2 |
90W/s |
17W/s |
2000个publisher每隔1毫秒发送10个payload为128字节的消息,这些消息分布在128种topic下。
| |
smart-mqtt |
emqx |
| QoS0 |
26W/s |
19W/s |
| QoS1 |
30W/s |
9W/s |
| QoS2 |
28W/s |
6W/s |
因为不了解emq的调优策略,测试过程或许存在不公平因素,结果仅供参考。
另外,这次发布的是一个阶段性版本,我们主要为了攻克性能方面的挑战。其中可能存在一些其他小问题,所以暂时不推荐生产使用。
本次更新内容:
优化 docker-compose.yml 配置,提升压测体验。
简化客户端连接空闲超时处理逻辑,节省内存开销。
显式管理 openAPI 服务的线程资源。
提升IO的flush效率。
调整内存消息队列的消费模式:当订阅者消费过慢导致消息被发布者覆盖,将直接跳跃至最新一条。
简化消息的 Push 模型,并获得大幅的性能提升。
暂时移除消息重发策略,会在后续版本中重构。
缩小 MQTT Client 消息发送的锁粒度,提升通信效率。
重构飞行队列,在高并发场景下能显著节省内存开销。
其他关于内存和性能的细节优化。
3、如何获取 smart-mqtt
3.1 源码
3.2 Maven依赖
<dependency>
<groupId>org.smartboot.mqtt</groupId>
<artifactId>smart-mqtt-broker</artifactId>
<version>0.16</version>
</dependency>
<dependency>
<groupId>org.smartboot.mqtt</groupId>
<artifactId>smart-mqtt-client</artifactId>
<version>0.16</version>
</dependency>
3.3 发行包
4. 关于 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/邮件 |
白银赞助商的价值:
成为赞助商遵循双方自愿原则,我们会在能力范围内尽可能提供 smart-mqtt 相关的技术支持。与此同时因时间和精力有限,我们也并不希望由此带来额外的负担,影响到项目的正常迭代。
所以,如有疑问尽量通过 ISSUE 交流,或者通过 ISSUE 和官方文档自助寻找答案,还望理解~~
ISSUE:?https://gitee.com/smartboot/smart-mqtt/issues