🎉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的订阅关系数。

【社区版】

  1. smart-socket 升级至1.5.29。

  2. fastjson2 升级至 2.0.21.graal。

  3. 迁移指标采集功能至企业版。

  4. 优化SubAck的响应效率。

  5. Broker支持注册 smart-socket 插件。

  6. 新增事件类型:NOTIFY_TOPIC_PUSH,用于触发指定topic的消息推送。

  7. 优化MQTT的连接会话管理。

  8. 重构topic的订阅匹配模型。

  9. 重构消息推送模型。

  10. 重构飞行窗口。

  11. 提升MqttClient服务稳定性。

  12. 补充单元测试用例。

【企业版】

  1. 采用异步方式持久化统计指标,降低对通信性能造成的影响。

  2. 统计指标适配 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 源码

  • 主仓库: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.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 的价值,可以通过成为赞助商获得企业版授权。

功能特性

  1. 企业版 License 认证。授权过期将无法启动服务,但并不会因授权过期影响正在运行的 Broker。

  2. MQTT over WebSocket。

  3. Broker 集群部署。

  4. 管理后台

  5. 指标数据持久化(H2、MySQL)

  6. 未完待续...

赞助商等级

  青铜赞助商 白银赞助商 黄金赞助商 铂金赞助商
赞助条件 加入企业支持计划 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/issue


相關推薦

2023-07-18

频道等等。 功能特性 支持自定义消息 支持订阅/发布者模式 支持个人/群聊/客服/社区资讯频道 支持频道黑明单 支持频道白名单 支持消息永久漫游,换设备登录,消息不丢失 支持在线状态,支持同账号多设备同

2023-01-16

1、smart-mqtt 简介 smart-mqtt 是用 java 语言开发的 MQTT Broker 服务,也是 smartboot 组织下首款真正意义上面向物联网的解决方案。旨在帮助企业以较低的成本快速搭建稳定、可靠的物联网服务,助力万物互联互通。 smartboot开源组

2023-10-17

的前两天),相约开源PHP办公室,我们一起聊 AI!>>> 1、smart-mqtt 简介 smart-mqtt,是 smartboot 组织下面向物联网的首款解决方案,它使用 Java 语言开发,提供高效、可靠的 MQTT Broker 服务。 smart-mqtt 的独特优势在于大量设备接入的

2023-04-24

1、smart-mqtt 简介 smart-mqtt,是smartboot组织下面向物联网的首款解决方案,它使用Java语言开发,提供高效、可靠的MQTT Broker服务。 smart-mqtt的独特优势在于大量设备接入的情况下,仍能保持低延迟和高吞吐量,满足物联网领域严苛

2022-09-25

smart-socket 是一款极简、易用、高性能的国产开源 AIO 通信框架,旨在帮助开发人员轻松打造企业级通信应用。 更新内容🎉 支持低内存运行模式,实现低配内存服务器运行百万长连接。 增加对 DelimiterFrameDecoder 的入参校验

2023-08-31

【直播预告】eBPF 到底是可观测领域的神器 or 鸡肋? 本次更新内容 SSL优化 各类依赖管理版本升级 其它一些小修改 最新 POM 坐标 <dependency> <groupId>org.t-io</groupId> <artifactId>tio-core</artifactId> <ver

2022-11-14

一、关于 smart-mqtt smart-mqtt 是用 java 语言开发的 MQTT Broker 服务,也是 smartboot 组织下首款真正意义上面向物联网的解决方案。旨在帮助企业以较低的成本快速搭建稳定、可靠的物联网服务,助力万物互联互通。 二、快速启动

2023-11-13

smart-mqtt v0.32 已经发布,MQTT Broker 服务。 此版本更新内容包括: 优化 Plugin 接口设计。 重构消息队列。 提供优雅停机能力。 提升 mqtt client 服务稳定性。 改进连接认证功能。 restapi 启用异步接口功能。 优化企业管

2022-12-06

一、关于 smart-mqtt smart-mqtt 是用 java 语言开发的 MQTT Broker 服务,也是 smartboot 组织下首款真正意义上面向物联网的解决方案。旨在帮助企业以较低的成本快速搭建稳定、可靠的物联网服务,助力万物互联互通。 二、快速启动

2022-09-05

smart-mqtt 是用 java 语言开发的 MQTT Broker 服务,也是 smartboot 组织下首款真正意义上面向物联网的解决方案。旨在帮助企业以较低的成本快速搭建稳定、可靠的物联网服务,助力万物互联互通。 一、更新内容 🎉 1.1 Features 🌈

2023-03-09

1、smart-mqtt 简介 smart-mqtt 是用 java 语言开发的 MQTT Broker 服务,也是 smartboot 组织下首款真正意义上面向物联网的解决方案。旨在帮助企业以较低的成本快速搭建稳定、可靠的物联网服务,助力万物互联互通。 smartboot开源组

2023-10-28

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://g

2022-12-17

本次发布版本主要是针对 smart-mqtt 性能作了很大的提升。 另外受制于性那压测工具 emqx-bench 无法支持 arm 架构的服务器,我们自研了能够实现跨平台的 Java 版压测工具:smart-mqtt-bench。 一、关于 smart-mqtt smart-mqtt 是用 java 语言

2024-03-08

简介 角色 功能 生产端(或发起端) 发布消息、定时消息(或叫延时)、顺序消息、可过期消息、事务消息。发送消息(rpc) 支持 Qos0、Qos1     消费端(或接收端) 订阅、取消订阅。消费-