您现在的位置是:首页 > 文章详情

🎉smart-mqtt v0.25 发布,用 Java 打造一款性能炸裂的MQTT Broker

日期:2023-07-31点击:98

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 架构设计中,我们规划了基于消息总线的数据桥接能力,但一直以来未提供具体的实现。

随着项目的迭代,实现该能力的时机已然成熟,所以我们花了几周时间,开发出了两款数据桥接插件:redis-bridge、kafka-bridge,同时配套了前端管理页面。(见下图:)

当前仅达到功能可用的效果,还未对此作性能调优。另外,我们还规划了多款桥接插件会在后续逐步开放,包括且不限于下图列表。

更新内容

【社区版】

  1. smart-socket升级值1.5.32。

  2. 设置slf4j-simple的maven scope为runtime。

  3. 更新readme.md。

  4. 重构消息总线,提升可扩展性。

  5. 新增事件类型:OPEN_API_STARTED。

  6. 移除开源版中的openapi定义。

  7. MqttSession新增getMqttContext接口。

  8. 清理smart-mqtt.yaml配置文件,移除无用项。

【企业版】

  1. 新增两款数据桥接插件:redis-bridge、kafak-bridge

  2. 添加后台登录账户认证。

  3. 提升mqtt-over-websocket的稳定性。

3、性能测试报告

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

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

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

公平起见,我们也在此移除了之前 emqx 的测试报告,并更新了 smart-mqtt 的最新结果。

  • 场景一:
    10 个 publisher 每隔 1 毫秒发送 payload 为 128 字节的消息,这些消息分布在 128 种 topic 下,有 2000 个 subscriber 订阅这些 topic 的消息。

  smart-mqtt
QoS0 300W/s
QoS1 160W/s
QoS2 80W/s
  • 场景二:

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

  smart-mqtt
QoS0 93W/s
QoS1 55W/s
QoS2 40W/s

4、如何获取 smart-mqtt

4.1 源码

4.2 Maven 依赖

  • mqtt broker

 <dependency> <groupId>org.smartboot.mqtt</groupId> <artifactId>smart-mqtt-broker</artifactId> <version>0.25</version> </dependency> 
  • mqtt client

 <dependency> <groupId>org.smartboot.mqtt</groupId> <artifactId>smart-mqtt-client</artifactId> <version>0.25</version> </dependency> 

4.3 发行包

5. 关于 smart-mqtt 企业版

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

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

功能特性

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

  2. MQTT over WebSocket。

  3. Broker 集群部署。

  4. 管理后台

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

  6. 数据桥接:redis、kafka

  7. 未完待续...

赞助商等级

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

原文链接:https://www.oschina.net/news/251645/smart-mqtt-0-25-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章