🎉 smart-mqtt v0.16 发布,可靠的物联网解决方案
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终于在性能上有了新的突破。实测效果如下:
场景一:
10个publisher每隔1毫秒发送payload为128字节的消息,这些消息分布在128种topic下,有2000个subscriber订阅这些topic的消息。
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依赖
mqtt broker
<dependency> <groupId>org.smartboot.mqtt</groupId> <artifactId>smart-mqtt-broker</artifactId> <version>0.16</version> </dependency>
mqtt client
<dependency> <groupId>org.smartboot.mqtt</groupId> <artifactId>smart-mqtt-client</artifactId> <version>0.16</version> </dependency>
3.3 发行包
社区版
打开浏览器访问:https://gitee.com/smartboot/smart-mqtt/releases
下载最新版。企业版
成为项目赞助商,单独提供发行包(具体见下文)。
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/邮件 |
白银赞助商的价值:
成本:500元/年,相当于一名初中级程序员一天的薪资。
产出效益:
增加品牌曝光率。
节省投入在 Sass云服务中的巨额资费。
结交更多物联网领域的从业者。
成为赞助商遵循双方自愿原则,我们会在能力范围内尽可能提供 smart-mqtt 相关的技术支持。与此同时因时间和精力有限,我们也并不希望由此带来额外的负担,影响到项目的正常迭代。
所以,如有疑问尽量通过 ISSUE 交流,或者通过 ISSUE 和官方文档自助寻找答案,还望理解~~

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
FreeBSD 13.2-RC3 发布
FreeBSD 13.2-RC3 版本发布了,这是FreeBSD 13.2 的第三个,也可能是最后一个候选版本。 FreeBSD 13.2 带来了一系列新功能,比如 重新将 WireGuard 驱动程序引入其源代码树,用于流行的开源安全 VPN 隧道 默认情况下为 64 位可执行文件启用 ASLR(地址空间布局随机化) Bhyve 虚拟机管理程序增强功能 改进的 Intel Alder Lake 支持 Kdump 具有支持解码 Linux 系统调用 ... FreeBSD 13.2-RC3 的发布还添加了最近发布的 OpenSSH 9.3、处理 MS-DOS 文件系统时对 makefs 的主要性能修复,以及对主机/机器 ID 生成的更改。 Netflix 还修复了 makefs 的性能问题,大大缩减了 MSDOS 文件系统的创建速度。补丁解释说,“添加缺失的 brelse(bp),没有它,缓存会增长“ 这一行代码改变了 makefs,使得 MS-DOS 的创建时间从 5 分 18 秒下降到仅仅 31 秒 。 有关 FreeBSD 13.2-RC3 的更多详细信息和下载,请访问发布公告。...
- 下一篇
马斯克:Twitter 将于 3 月 31 日开源所有推荐机制代码
马斯克又发布推文表示,推特将于 3 月 31 日开源所有用于推文推荐的代码。他解释称: 我们的“算法”过于复杂且内部未完全理解。人们会发现很多愚蠢的问题,但我们会在发现问题后立即修补!我们正在开发一种简化的方法来提供更具吸引力的推文,但这项工作仍在进行中。这也将是开源的。提供代码透明度一开始会令人尴尬,但它应该会让推荐质量快速提高。最重要的是,我们希望赢得你的信任。 事实上,马斯克已经不止一次的表示即将开源推特算法。他在去年收购推特前就说过,Twitter 的代码应该在 GitHub 上开源,以便公众对其进行检查。在这不久后,马斯克宣布收购推特。与此同时,Twitter 的 GitHub 主页新增了一个“the-algorithm(算法)” 仓库,不过这个仓库很快就 404 了。 今年 2 月份,马斯克又在回复网友评论时表示,“当我们下周把算法开源后,首先要做好失望的准备,但它会迅速改进!” 但事实证明,马斯克以往的开源推特算法承诺都并未兑现。至于这次是真是假,也只能等待时间验证。 延伸阅读: 马斯克接手后,Twitter 开源工作停摆 马斯克又来炒作开源,称下周开源推特算法
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装Docker,最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19