一、简介

mica-mqtt 基于 java aio 实现的简单低延迟高性能 的 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 客户端

    四、更新记录

    v2.3.4 - 2024-08-10

  • ✨ mica-mqtt 合入 mica-mqtt-client-solon-pluginmica-mqtt-server-solon-plugin 感谢 @peigenlpy
  • ✨ jfinal 插件重命名为 mica-mqtt-client-jfinal-pluginmica-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。

    v2.3.0 - 2024-05-26

  • ✨ mica-mqtt 优化 MqttQoS 枚举,改为 MqttQoS.QOS0,方便使用(不兼容)。
  • ✨ mica-mqtt-client 同步私服部分功能,支持 stop 完全停止。
  • ✨ mica-mqtt-client 同步私服部分功能,MqttClient 都添加了 schedule、scheduleOnce 方法,(耗时任务,请务必自定义线程池
  • ✨ mica-mqtt-server 优化设备离线,简化代码。
  • ✨ mica-mqtt-server 用户绑定使用 tio 内置 Tio.bindUser(context, username)。
  • 🐛 mica-mqtt-client-spring-boot-starter 修复 @MqttClientSubscribe 类型错误时的异常提示。
  • 🐛 mica-mqtt-client 修复重连可能失败的问题 gitee #I9RI8E 感谢 @YYGuo 反馈。

五、重点说明

5.1 支持 stop 停止

在最新的版本中 mica-mqtt-client 和 mica-mqtt-server 均可实现完全停止,可帮助开发者更好的实现插件式开发。

5.2 添加 solon 插件

国产轻量级 solon Java 开发框架,越来越多人使用,2.3.4 版本中合并了 @peigenlpy 同学开发的插件。更好的支持 solon 框架。
使用 solon 集成的 mica-mqtt example 更是可以实现 毫秒级启动,内存占用也非常少,100M内存即可实现上千连接。

六、使用

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 使用文档
服务端:

<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 使用文档

solon 项目

客户端:

<dependency>
  <groupId>net.dreamlu</groupId>
  <artifactId>mica-mqtt-client-solon-plugin</artifactId>
  <version>${mica-mqtt.version}</version>
</dependency>

配置详见mica-mqtt-client-solon-plugin 使用文档
服务端:

<dependency>
  <groupId>net.dreamlu</groupId>
  <artifactId>mica-mqtt-server-solon-plugin</artifactId>
  <version>${mica-mqtt.version}</version>
</dependency>

配置详见mica-mqtt-server-solon-plugin 使用文档

JFinal 项目

客户端:

<dependency>
  <groupId>net.dreamlu</groupId>
  <artifactId>mica-mqtt-client-jfinal-plugin</artifactId>
  <version>${mica-mqtt.version}</version>
</dependency>

配置详见mica-mqtt-client-jfinal-plugin 使用文档
服务端:

<dependency>
  <groupId>net.dreamlu</groupId>
  <artifactId>mica-mqtt-server-jfinal-plugin</artifactId>
  <version>${mica-mqtt.version}</version>
</dependency>

配置详见mica-mqtt-server-jfinal-plugin 使用文档

其他项目

客户端

<dependency>
  <groupId>net.dreamlu</groupId>

  <artifactId>mica-mqtt-client</artifactId>

  <version>${mica-mqtt.version}</version>

</dependency>

配置详见mica-mqtt-client 使用文档

服务端

<dependency>
  <groupId>net.dreamlu</groupId>

  <artifactId>mica-mqtt-server</artifactId>

  <version>${mica-mqtt.version}</version>

</dependency>

配置详见mica-mqtt-server 使用文档

七、文档


如梦技术
59 声望7 粉丝

人生就像愤怒的小鸟,当你失败时总又几只猪在笑。