smart-mqtt v0.1 首发,国产开源 MQTT Broker 服务器

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

smart-mqtt 底层通信采用了异步非阻塞通信框架 smart-socket,现已实现了完整的 mqtt v3.1.1 协议编解码规范,未来还将考虑支持 mqtt v5.0 及其他物联网协议。

项目发展

  • 2018年,创建 smart-mqtt 项目,完成基本的协议编解码结构搭建。
  • 2019~2021年,项目基本处于停更状态,期间重心在于提升底层通信框架 smart-socket 的性能。
  • 2022年3月,重启 smart-mqtt。

更新内容

  • ✅  支持MQTT v3.1.1协议标准
  • ✅  支持Qos0、Qos1、Qos2 的消息传递。
  • ✅  支持遗嘱消息
  • ✅  支持 retain 消息
  • ✅  支持心跳消息
  • ✅  插件化设计模式
  • ✅  mqtt client 相关功能
  • ✅  优雅停机
  • ✅  Broker生命周期及各类事件监听
  • 客户端鉴权
  • 支持集群部署模式
  • 支持通配符订阅模式
  • 精准流控
  • 待补充。。。

功能演示

步骤一:启动 MQTT Broker

我们可以通过两种方式启动MQTT Broker服务。

第一种是下载工程源码后,运行 smart-mqtt-broker 模块下的 Boostrap 程序(如下图)。

第二种是通过二进制发行包启动broker服务,进入bin目录后执行 start.sh 脚本即可。软件包下载地址为:https://gitee.com/smartboot/smart-mqtt/releases

步骤二:启动 MQTT Client

smart-mqtt 现已提供了比较基础的 client 能力,通过下图所示代码启动即可。当然,也可以采用任意遵循 MQTT 协议的第三方客户端连接 smart-mqtt broker。

参考资料

  1. 《MQTT协议3.1.1中文版》
  2. moquette

最后

smart-mqtt 正处于代码研发阶段,功能、文档、产品规划都还存在诸多的不完善。这个项目在我过往研发的开源作品中算不上难度最大的,但一定是复杂性最高的,这里面涵盖了通信、MQTT协议规范、消息队列、分布式架构、消息质量、数据持久化等一系列技术挑战。保守估计还需数月的研发才可使 MQTT Broker具备生产应用的成熟度,对该项目感兴趣的朋友欢迎留言交流。

猜你喜欢

转载自www.oschina.net/news/191159