🎉smart-mqtt v0.21发布,单机百万级 Topic 订阅
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、 版本更新
在v0.21版本中,我们通过改进数据结构的设计,将topic订阅匹配逻辑的算法复杂度从原先的 O(n) 优化至 O(1)。极大的节省了过程中的CPU开销,现已轻松实现单机百万级Topic的订阅关系数。
【社区版】
-
smart-socket 升级至1.5.29。
-
fastjson2 升级至 2.0.21.graal。
-
迁移指标采集功能至企业版。
-
优化SubAck的响应效率。
-
Broker支持注册 smart-socket 插件。
-
新增事件类型:NOTIFY_TOPIC_PUSH,用于触发指定topic的消息推送。
-
优化MQTT的连接会话管理。
-
重构topic的订阅匹配模型。
-
重构消息推送模型。
-
重构飞行窗口。
-
提升MqttClient服务稳定性。
-
补充单元测试用例。
【企业版】
-
采用异步方式持久化统计指标,降低对通信性能造成的影响。
-
统计指标适配 Prometheus。
3、性能测试报告
-
场景一:
10 个 publisher 每隔 1 毫秒发送 payload 为 128 字节的消息,这些消息分布在 128 种 topic 下,有 2000 个 subscriber 订阅这些 topic 的消息。
smart-mqtt | emqx | |
---|---|---|
QoS0 | 240W/s | 25W/s |
QoS1 | 100W/s | 25W/s |
QoS2 | 50W/s | 25W/s |
-
场景二:
2000 个 publisher 每隔 1 毫秒发送 10 个 payload 为 128 字节的消息,这些消息分布在 128 种 topic 下。
smart-mqtt | emqx | |
---|---|---|
QoS0 | 89W/s | 50W/s (间歇性不可用) |
QoS1 | 50W/s | 9W/s |
QoS2 | 40W/s | 6.8W/s |
因为不了解 emq 的调优策略,测试过程或许存在不公平因素,结果仅供参考。
4、如何获取 smart-mqtt
4.1 源码
4.2 Maven 依赖
-
mqtt broker
<dependency> <groupId>org.smartboot.mqtt</groupId> <artifactId>smart-mqtt-broker</artifactId> <version>0.21</version> </dependency>
-
mqtt client
<dependency> <groupId>org.smartboot.mqtt</groupId> <artifactId>smart-mqtt-client</artifactId> <version>0.21</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 集群部署。
-
管理后台
-
指标数据持久化(H2、MySQL)
-
未完待续...
赞助商等级
青铜赞助商 | 白银赞助商 | 黄金赞助商 | 铂金赞助商 | |
---|---|---|---|---|
赞助条件 | 加入企业支持计划 | 500 元 / 年 | 1500 元 / 年 | 5000 元 / 年 |
License 有效期 | 1 年 | 1 年 | 1 年 | 1 年 |
部署指导 | - | 1 次 | 1 次 | 不限次数 |
Logo 展示位 | - | 小号 | 中号 | 大号 |
首页 Logo 展示 | - | - | - | ✅ |
技术支持 | 文档 | 邮件 /ISSUE | 微信 / QQ / 邮件 | 微信 / QQ / 邮件 |
白银赞助商的价值:
成本:500 元 / 年,相当于一名初中级程序员一天的薪资。
产出效益:
增加品牌曝光率。
节省投入在 Sass 云服务中的巨额资费。
结交更多物联网领域的从业者。
成为赞助商遵循双方自愿原则,我们会在能力范围内尽可能提供 smart-mqtt 相关的技术支持。与此同时因时间和精力有限,我们也并不希望由此带来额外的负担,影响到项目的正常迭代。
所以,如有疑问尽量通过 ISSUE 交流,或者通过 ISSUE 和官方文档自助寻找答案,还望理解~~

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
微软 Edge 114 正式发布
微软日前为所有支持的操作系统和平台发布了 Microsoft Edge 114 稳定版。此次更新主要包括 Edge Workspaces 功能,它允许用户共享并同步相同的标签页集合。 功能更新 Microsoft Edge Workspaces:Edge Workspaces 为用户提供了一个可将其浏览任务组织到专用窗口的功能。Edge Workspaces 让用户可以共享一组浏览器标签,因此工作组成员可以在一个地方查看相同的网站和最新的工作文件,并保持在同一页面。每个 Edge Workspace 都包含自己的标签和收藏夹,都是由用户和他们的合作者创建和策划的,Edge Workspace 还会自动保存并保持更新。 该功能与 Vivaldi 6.0 中推出的 Workspaces 功能类似。 策略更新 新策略 StandaloneHubsSidebarEnabled - 启用独立侧边栏 ShowDownloadsToolbarButton - 在工具栏上显示下载按钮 过时的策略 MicrosoftRootStoreEnabled - 确定是否使用 Microsoft Root Sto...
- 下一篇
红帽宣布未来 RHEL 将不再支持 LibreOffice
Red Hat 已经决定他们将减少投入到桌面应用程序的工作,并将停止将 LibreOffice 作为未来 Red Hat Enterprise Linux 版本(大概是 RHEL10)的一部分提供。 这也限制了 Red Hat 参与 Fedora 的 LibreOffice 打包工作,而希望 Flatpak 版本 LibreOffice 能够填补空白。 根据 Red Hat 员工和 GNOME 开发者 Matthias Clasen 的说法,LibreOffice RPM 已被红帽放弃,并决定未来停止在 RHEL 中发布 LibreOffice,并限制他们对 Fedora 的贡献范围。 Red Hat 的显示系统团队 (Display Systems team) 一直致力于 Wayland 改进、Linux 桌面上的 HDR 支持以及其他使工作站用户受益的关键工作。然而,专注于此的“权衡”是他们将放弃较少的桌面应用程序工作,并从未来的 RHE 版本开始停止将 LibreOffice 作为 RHEL 的一部分提供。这也限制了他们在 Fedora 的未来版本中维护 LibreOffic...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7