一、简介
mica-mqtt 基于 java aio 实现的简单、低延迟、高性能 的 mqtt 物联网开源组件。mica-mqtt 更加易于集成到已有服务和二次开发,降低自研物联网平台开发成本。
二、功能
-
支持 MQTT v3.1、v3.1.1 以及 v5.0 协议。 -
支持 websocket mqtt 子协议(支持 mqtt.js)。 -
支持 http rest api,http api 文档详见[1]。 -
支持 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 Stream 实现集群,详见 mica-mqtt-broker 模块[2]。
三、使用场景
-
物联网(云端 mqtt broker) -
物联网(边缘端消息通信) -
群组类 IM -
消息推送 -
简单、易用的 mqtt client 客户端
四、更新记录
v2.3.4 – 2024-08-10
-
✨ mica-mqtt 合入 mica-mqtt-client-solon-plugin
和mica-mqtt-server-solon-plugin
感谢@peigenlpy
-
✨ jfinal 插件重命名为 mica-mqtt-client-jfinal-plugin
和mica-mqtt-server-jfinal-plugin
-
🐛 mica-mqtt-server 修复分组订阅删除,感谢 @tangjj
反馈。
v2.3.3 – 2024-07-22
-
✨ mica-mqtt-server 可停止,同步捐助版。 -
✨ mica-mqtt-server 添加 schedule 系列方法,同步捐助版。 -
✨ mica-mqtt 代码优化 TopicUtil 优化 getTopicFilter 方法。 -
✨ mica-mqtt 优化 AckTimerTask 和 retry 重发日志。gitee #IABQ7L 感谢 @tan90
反馈。 -
✨ mica-mqtt-client-spring-boot-starter 更加方便自定义 MqttClientTemplate。 -
✨ mica-mqtt-client-spring-boot-starter MqttClientTemplate 暴露更多方法,方便使用。 -
✨ mica-mqtt-example 添加 ssl 测试代码 -
🐛 mica-mqtt-client 修复 ssl 服务端重启问题 gitee #IA9FFW #IAEHOD 感谢 @geekerstar
@hangrj
反馈。
v2.3.1 – 2024-06-25
-
✨ mica-mqtt-server 重构心跳,心跳检测模式默认为:最后接收的数据时间。gitee #I9R0SN #IA69SM 感谢 @HY
@tan90
反馈。 -
✨ mica-mqtt-server 优化端口占用的异常提示,方便排查。 -
✨ mica-mqtt client 使用 mica-net 内置的心跳检测,内置心跳已重构。 -
✨ mica-mqtt-client 重连不管服务端是否存在 session 都发送订阅。gitee #I9VIUV 感谢 @xiaochonzi
反馈。 -
✨ 快照版也打 source jar 方便使用。 -
✨ 添加 renovate bot 方便更新依赖和插件版本。 -
✨ 优化 issue.yml 和 github action。
五、重点说明
5.1 支持 stop 停止
在最新的版本中 mica-mqtt-client 和 mica-mqtt-server 均可实现完全停止,可帮助开发者更好的实现插件式开发。
5.2 添加 solon 插件
国产轻量级 solon Java 开发框架,越来越多人使用,2.3.4 版本中合并了 @peigenlpy
同学开发的插件。更好的支持 solon 框架。使用 solon 集成的 mica-mqtt example 更是可以实现 毫秒级启动,内存占用也非常少,100M内存即可实现上千连接。
六、使用
6.1 Spring boot 项目
客户端:
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-mqtt-client-spring-boot-starter</artifactId>
<version>${mica-mqtt.version}</version>
</dependency>
配置详见:mica-mqtt-client-spring-boot-starter 使用文档[3]服务端:
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-mqtt-server-spring-boot-starter</artifactId>
<version>${mica-mqtt.version}</version>
</dependency>
配置详见:mica-mqtt-server-spring-boot-starter 使用文档[4]
6.2 Solon 项目
客户端:
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-mqtt-client-solon-plugin</artifactId>
<version>${mica-mqtt.version}</version>
</dependency>
配置详见:mica-mqtt-client-solon-plugin 使用文档[5]服务端:
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-mqtt-server-solon-plugin</artifactId>
<version>${mica-mqtt.version}</version>
</dependency>
配置详见:mica-mqtt-server-solon-plugin 使用文档[6]
6.3 JFinal 项目
客户端:
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-mqtt-client-jfinal-plugin</artifactId>
<version>${mica-mqtt.version}</version>
</dependency>
配置详见:mica-mqtt-client-jfinal-plugin 使用文档[7]服务端:
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-mqtt-server-jfinal-plugin</artifactId>
<version>${mica-mqtt.version}</version>
</dependency>
配置详见:mica-mqtt-server-jfinal-plugin 使用文档[8]
6.4 其他 Java 项目
客户端
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-mqtt-client</artifactId>
<version>${mica-mqtt.version}</version>
</dependency>
配置详见:mica-mqtt-client 使用文档[9]服务端
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-mqtt-server</artifactId>
<version>${mica-mqtt.version}</version>
</dependency>
配置详见:mica-mqtt-server 使用文档[10]
七、文档
-
mqtt科普、mqttx、mica-mqtt的使用**视频**[11] -
mica-mqtt 示例、快速开始[12] -
mica-mqtt 使用常见问题汇总[13] -
mica-mqtt 发行版本[14]
八、最佳实践
演示地址:https://iot.javablade.com
http api 文档详见: https://gitee.com/596392912/mica-mqtt/blob/master/docs/http-api.md
[2]
mica-mqtt-broker 模块: https://gitee.com/596392912/mica-mqtt/blob/master/mica-mqtt-broker
[3]
mica-mqtt-client-spring-boot-starter 使用文档: https://gitee.com/596392912/mica-mqtt/blob/master/starter/mica-mqtt-client-spring-boot-starter/README.md
[4]
mica-mqtt-server-spring-boot-starter 使用文档: https://gitee.com/596392912/mica-mqtt/blob/master/starter/mica-mqtt-server-spring-boot-starter/README.md
[5]
mica-mqtt-client-solon-plugin 使用文档: https://gitee.com/596392912/mica-mqtt/blob/master/starter/mica-mqtt-client-solon-plugin/README.md
[6]
mica-mqtt-server-solon-plugin 使用文档: https://gitee.com/596392912/mica-mqtt/blob/master/starter/mica-mqtt-server-solon-plugin/README.md
[7]
mica-mqtt-client-jfinal-plugin 使用文档: https://gitee.com/596392912/mica-mqtt/blob/master/starter/mica-mqtt-client-jfinal-plugin/README.md
[8]
mica-mqtt-server-jfinal-plugin 使用文档: https://gitee.com/596392912/mica-mqtt/blob/master/starter/mica-mqtt-server-jfinal-plugin/README.md
[9]
mica-mqtt-client 使用文档: https://gitee.com/596392912/mica-mqtt/blob/master/mica-mqtt-client/README.md
[10]
mica-mqtt-server 使用文档: https://gitee.com/596392912/mica-mqtt/blob/master/mica-mqtt-server/README.md
[11]
mqtt科普、mqttx、mica-mqtt的使用视频: https://www.bilibili.com/video/BV1wv4y1F7Av/
[12]
mica-mqtt 示例、快速开始: https://gitee.com/596392912/mica-mqtt/blob/master/example/README.md
[13]
mica-mqtt 使用常见问题汇总: https://gitee.com/596392912/mica-mqtt/issues/I45GO7
[14]
mica-mqtt 发行版本: https://gitee.com/596392912/mica-mqtt/blob/master/CHANGELOG.md
原文始发于微信公众号(JAVA架构日记):mica-mqtt 2.3.4 发布,支持国产轻量级 Solon 框架
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/298502.html