一、简介

mica-mqtt 基于 t-io 实现的简单低延迟高性能 的 mqtt 物联网开源组件。mica-mqtt 更加易于集成到已有服务和二次开发,降低自研物联网平台开发成本。

二、功能

  • 支持 MQTT v3.1、v3.1.1 以及 v5.0 协议。
  • 支持 websocket mqtt 子协议(支持 mqtt.js)。
  • 支持 http rest api,http api 文档详见
  • 支持 MQTT client 客户端。
  • 支持 MQTT server 服务端。
  • 支持 MQTT 遗嘱消息。
  • 支持 MQTT 保留消息。
  • 支持自定义消息(mq)处理转发实现集群。
  • MQTT 客户端 阿里云 mqtt 连接 demo。
  • 支持 GraalVM 编译成本机可执行程序。
  • 支持 Spring boot 项目快速接入(mica-mqtt-spring-boot-starter)。
  • mica-mqtt-spring-boot-starter 支持对接 Prometheus + Grafana。
  • 基于 redis pub/sub 实现集群,详见 mica-mqtt-broker 模块

三、使用场景

  • 物联网(云端 mqtt broker)
  • 物联网(边缘端消息通信)
  • 群组类 IM
  • 消息推送
  • 简单、易用的 mqtt client 客户端

四、更新记录

v1.3.3 - 2022-05-28

  • ✨ mica-mqtt 添加 kafka TimingWheel 重构 ack。
  • ✨ mica-mqtt 优化线程池。
  • ✨ mica-mqtt 添加 Compression 压缩接口。
  • ✨ mica-mqtt server 添加 MqttClusterMessageListener 方便集群消息处理。
  • ✨ mica-mqtt client 优化客户端取消订阅逻辑,gitee #I5779A 感谢 @杨钊 同学反馈。
  • ⬆️ 升级 fastjson 到 1.2.83。

五、重点说明

此版本优化了订阅、取消订阅和 Qos1~2 的 ack 重试机制,默认重试 5 次,重试间隔为 10s。

将 ack 重试由 ScheduledThreadPoolExecutor 改为了更加 kafka TimingWheel 多层时间轮。未来会使用 TimingWheel 实现更多业务需求,例如延迟消息等。

kafka时间轮.gif

更多详见:《一张图理解Kafka时间轮(TimingWheel),看不懂算我输!

六、使用文档和示例