🔥 突破 700万/秒,这个 MQTT 有点快
1、smart-mqtt 简介
smart-mqtt,是 smartboot 组织下面向物联网的首款解决方案,它使用 Java 语言开发,提供高效、可靠的 MQTT Broker 服务。
smart-mqtt 的独特优势在于大量设备接入的情况下,仍能保持低延迟和高吞吐量,满足物联网领域严苛的实时性需求。同时,smart-mqtt 为了最大限度地节省硬件成本,采用了高度优化的资源管理策略,降低了系统运行时的 CPU 和内存占用,使企业在保持高性能的同时,大幅降低运维成本。
另外,mqtt 协议天然适合 IM 场景,需要打造企业级 IM 应用,smart-mqtt 同样是一个非常好的选择。
smartboot 开源组织,一个容易被误认为是在 “重复造轮子” 的低调组织。曾获得 2020 年度 OSC 中国开源项目「优秀 Gitee 组织 」荣誉。
该组织内的明星项目包括:
smart-socket
历时 5 年精炼出 2 千多行代码,轻松实现百万级长连接的 AIO 通信框架。smart-http
基于 smart-socket 实现的 HTTP/1.1 web 服务。smart-servlet
基于 smart-http 实现的 Servlet 4.0 容器服务。smart-mqtt
基于 smart-socket 实现的 MQTT 3.1.1/5.0 Broker&Client 服务。smart-flow
一款具备可观测性的轻量级业务编排框架。组织地址:?https://smartboot.tech/
代码仓库:?https://gitee.com/smartboot
快速启动
docker run --name smart-mqtt \ -p 18083:18083 \ -p 1883:1883 \ -d smartboot/smart-mqtt:latest
-
18083:Web 管理后台服务端口
-
1883:mqtt 端口
2、 版本更新
在功能方面,smart-mqtt 的最新版本引入了共享订阅的新特性。该特性的主要优势在于它提供了订阅端的负载均衡功能,以一种更灵活、可扩展的消息分发机制,改善大规模消息系统中的性能问题。
在传统的MQTT订阅模式中,每个订阅了特定主题的客户端都会收到该主题下所有发布的消息,这可能导致消费能力较弱的客户端无法及时处理大量消息,从而成为系统的性能瓶颈。共享订阅通过允许一个主题的消息被多个订阅者共同消费,可以有效地分散这种压力,提高系统的整体效率和可靠性。
虽然共享订阅是 MQTT 5.0 规范的一部分,但 smart-mqtt 将此特性适配至低版本的MQTT协议,所以 MQTT 3.1/3.1.1 的客户端也能从中受益。
而在性能方面,smart-mqtt 再一次突破算力极限,TPS 峰值达到 738W/s。这样的表现,背后所依托的是与 smart-http 中相同原理的黑科技算法:字节树。
至于稳定性,有一组数据足以体现。smart-mqtt 于 2024-02-01 启动了一个 15000 个客户端的压测任务。然后,这个压测任务就被遗忘了,服务器足足被持续压了一个多月。最终连接状态、吞吐量、CPU、内存皆表现稳定。
本次更新内容:
-
降低控制台指标监控打印频次。
-
新增共享订阅特性。
-
调整 Topic 编解码算法。
3、性能测试报告
-
场景一:
10 个 publisher 每隔 1 毫秒发送 payload 为 128 字节的消息,这些消息分布在 128 种 topic 下,有 2000 个 subscriber 订阅这些 topic 的消息。
v0.34 | v0.35 | v0.36 | |
---|---|---|---|
QoS0 | 600W/s | 670W/s | 738W/s |
QoS1 | 280W/s | 320W/s | 310W/s |
QoS2 | 150w/s | 180W/s | 185W/s |
-
场景二:
2000 个 publisher 每隔 1 毫秒发送 10 个 payload 为 128 字节的消息,这些消息分布在 128 种 topic 下。
smart-mqtt 企业版 | |
---|---|
QoS0 | 97W/s |
QoS1 | 63W/s |
QoS2 | 53W/s |
4、如何获取 smart-mqtt
源码

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【店滴云】1.4.8发布,优化微信生态能力接入,扩展微信第三方平台
公众号与小程序初始化兼容admin接口 增加对微信第三方平台的全局扩展
- 下一篇
IntelliJ IDEA 2024.1 Beta 发布,解绑 AI 助手
IntelliJ IDEA 2024.1 Beta 版本现已发布。最新版本集成了 IntelliJ IDEA 2024.1 早期访问计划期间引入的所有重要更新,以下是旨在增强开发工作流程各个方面的新功能的简短回顾: 支持 Java 22 功能 全行代码自动补全 改进的终端工具窗口 条件语句覆盖范围 编辑器中的 Sticky lines 项目索引期间 IDE 功能的早期可用性 编辑器内代码审查 丰富的 GitHub Actions 支持 改进了日志的工作流程 多个语句的内联断点 Maven 项目的打开速度提升 支持 OpenRewrite WireMock 服务器支持,等等 与此同时,项目团队正在进一步完善 v2024.1 中所包含的功能: Java 改进的“Detected Conflicts”对话框 在 v2024.1 中改进了“Detected Conflicts”对话框,以改善用户体验和可读性。现在,代码上下文反映了编辑器,使用户可以更清楚地了解 conflicts。优化了文本显示,IDE 现在会自动保存窗口大小调整以供将来使用。还更新了按钮及其行为以简化重构工作流程。现在可以通...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker安装Oracle12C,快速搭建Oracle学习环境