mica-mqtt 1.0.2 发布,完善 stater 和 example
1|0一、简介
mica-mqtt 基于 t-io 实现的简单、低延迟、高性能 的 mqtt 物联网开源组件。使用详见 mica-mqtt gitee 源码 mica-mqtt-example 模块。
mica-mqtt: 基于 t-io 实现的低延迟、高性能的 mqtt 组件。 记得右上角点个star 关注更新!
2|0二、功能
- 支持 MQTT v3.1、v3.1.1 以及 v5.0 协议。
- 支持 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。
3|0三、待办
- 添加 websocket 支持(已预研成功)。
- 优化处理 mqtt session,以及支持 v5.0
4|0四、更新记录
- 文档添加集群处理步骤说明,添加遗嘱消息、保留消息的使用场景。
- ✨ 去除演示中的 qos2 参数,性能损耗大避免误用。
- ✨ 遗嘱、保留消息内部消息转发抽象。
- ✨ 添加 mica-mqtt-spring-boot-example 。感谢 wsq( @冷月宫主 )pr。
- ✨ mica-mqtt-spring-boot-starter 支持客户端接入和服务端优化。感谢 wsq( @冷月宫主 )pr。
- ✨ mica-mqtt-spring-boot-starter 服务端支持指标收集。可对接 Prometheus + Grafana 监控。
- ✨ mqtt server 接受连接时,先判断该 clientId 是否存在其它连接,有则解绑并关闭其他连接。
- ⬆️ 升级 mica-auto 到 2.1.3 修复 ide 多模块增量编译问题。
5|0五、Spring boot 快速接入
6|05.1 添加依赖
7|05.2 服务端 yml 配置
8|05.3 服务端可实现接口(注册成 Spring Bean 即可)
接口 |
是否必须 |
说明 |
IMqttServerAuthHandler |
是 |
用于客户端认证 |
IMqttMessageListener |
是 |
消息监听 |
IMqttConnectStatusListener |
是 |
连接状态监听 |
IMqttSessionManager |
否 |
session 管理 |
IMqttMessageStore |
集群是,单机否 |
遗嘱和保留消息存储 |
AbstractMqttMessageDispatcher |
集群是,单机否 |
消息转发,(遗嘱、保留消息转发) |
IpStatListener |
否 |
t-io ip 状态监听 |
9|05.4 服务端自定义配置(可选)
10|05.5 MqttServerTemplate 使用示例
11|05.6 基于 mq 消息广播集群处理
- 实现 IMqttConnectStatusListener 处理设备状态存储。
- 实现 IMqttMessageListener 将消息转发到 mq,业务按需处理 mq 消息。
- 实现 IMqttMessageStore 存储遗嘱和保留消息。
- 实现 AbstractMqttMessageDispatcher 将消息发往 mq,mq 再广播回 mqtt 集群,mqtt 将消息发送到设备。
- 业务消息发送到 mq,mq 广播到 mqtt 集群,mqtt 将消息发送到设备。
12|05.7 Prometheus + Grafana 监控对接
得益于 t-io 良好的设计,监控指标直接对接的 t-io stat,目前支持下列指标,后期会不断完善。
支持得指标 |
说明 |
mqtt_connections_accepted |
共接受过连接数 |
mqtt_connections_closed |
关闭过的连接数 |
mqtt_connections_size |
当前连接数 |
mqtt_messages_handled_packets |
已处理消息数 |
mqtt_messages_handled_bytes |
已处理消息字节数 |
mqtt_messages_received_packets |
已接收消息数 |
mqtt_messages_received_bytes |
已处理消息字节数 |
mqtt_messages_send_packets |
已发送消息数 |
mqtt_messages_send_bytes |
已发送消息字节数 |
关于
mica-mqtt-spring-boot-starter 客户端等更多使用方式请查看 gitee
mica-mqtt-spring-boot-starter 模块 readme 文档。
13|0六、普通 java 项目接入
14|06.1 maven 依赖
15|06.2 mica-mqtt 客户端
16|06.3 mica-mqtt 服务端
17|0七、效果演示
__EOF__

本文链接:https://www.cnblogs.com/caicz/p/15127908.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人