一、简介
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时间轮(TimingWheel),看不懂算我输!》