?smart-mqtt v0.26 发布,挑战百万级连接量

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 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 所能支撑的连接量极限。在我看来,功能成熟之前去追求连接量的测试是一件无意义的行为。因为在海量连接场景下,任何一个细小的问题都会被无限放大,已致测试结果不理想。

在 v0.26 版本之前,根据经验评估 smart-mqtt 支撑单机十万级连接量应该毫无压力,而百万级估计不太可行。smart-mqtt 百万级长连接所面临的复杂性远远高于 smart-socket 的百万级长连接。毕竟当真的存在百万级连接量时,系统不仅仅要管理好百万级连接的IO调度资源,同时还需维护至少百万个定时任务和数百万个订阅关系。

而在 v0.26 版本中,通过引入 smart-socket 的低内存模式;基于时间轮的定时器;以及一系列的算法优化。最终将服务端与客户端进程同时运行在一台 16G 内存的环境下,实现了 30W 长连接的测试(见下图)。

MQTT Broker与Client的资源开销如下图。

熟悉 smart-socket 的朋友应该知道,当初 smart-socket 测试百万级长连接时服务端也仅消耗 3.1G 内存。而此处 samrt-mqtt 在 30W 连接的情况下就用了 3.6 G,可想而知在目前情况下要实现百万级长连接,至少需要为其预留 10G 内存。

通过分析dump内存,我们挖掘出了部分优化空间,或许下一阶段能在同样规格的环境下实现 50W 长连接,我们拭目以待。

更新内容

【社区版】

3、性能测试报告

自 smart-mqtt 开源以来,社区中陆陆续续出现多款 MQTT Broker 项目。个人认为这是个非常好的现象,说明越来越多人意识到这个领域的价值。

而随着选择的增多,用户会关心这些 Broker 产品的横向比较结果;作为项目维护者,也期望从中看到相互之间的差距并作出改进。

然而,难免存在个别厂商会将此视为碰瓷、蹭流量的行为。为了消除同行顾虑,smart-mqtt 今后不再公布比较结果,但会提供比较方案供需要的用户自行验证。

2000 个 publisher 每隔 1 毫秒发送 10 个 payload 为 128 字节的消息,这些消息分布在 128 种 topic 下。

4、如何获取 smart-mqtt

4.1 源码

4.2 Maven 依赖

4.3 发行包

5. 关于 smart-mqtt 企业版

smart-mqtt 目前是由个人开发者在业余时间维护,暂无提供商业化服务的计划。

出于项目的可持续发展需要,我们在 smart-mqtt 社区版的基础上,丰富了一些企业级功能。如果贵公司认可 smart-mqtt 的价值,可以通过成为赞助商获得企业版授权。

功能特性

赞助商等级

白银赞助商的价值:

  • 成本:500 元 / 年,相当于一名初中级程序员一天的薪资。

  • 产出效益:

    • 增加品牌曝光率。

    • 节省投入在 Sass 云服务中的巨额资费。

    • 结交更多物联网领域的从业者。

成为赞助商遵循双方自愿原则,我们会在能力范围内尽可能提供 smart-mqtt 相关的技术支持。与此同时因时间和精力有限,我们也并不希望由此带来额外的负担,影响到项目的正常迭代。

所以,如有疑问尽量通过 ISSUE 交流,或者通过 ISSUE 和官方文档自助寻找答案,还望理解~~

ISSUE:?https://gitee.com/smartboot/smart-mqtt/issue

未经允许不得转载:岩猫星空网 » ?smart-mqtt v0.26 发布,挑战百万级连接量