Backend Development 6 min read

Unlock High‑Performance IoT Messaging with mica‑mqtt: A Low‑Latency MQTT Broker

mica‑mqtt, built on t‑io, offers a simple, low‑latency, high‑performance open‑source MQTT component that integrates easily into existing services, supports multiple protocols and deployment scenarios, and includes Spring Boot starter, GraalVM compilation, and Redis‑based clustering for robust IoT solutions.

Java Architecture Diary
Java Architecture Diary
Java Architecture Diary
Unlock High‑Performance IoT Messaging with mica‑mqtt: A Low‑Latency MQTT Broker

1. Introduction

mica-mqtt is an open‑source MQTT component built on t‑io that provides a simple, low‑latency, high‑performance solution for IoT messaging.

It is easy to integrate into existing services and to extend, reducing the cost of developing custom IoT platforms.

2. Features

Supports MQTT v3.1, v3.1.1, and v5.0 protocols.

Supports WebSocket MQTT sub‑protocol (compatible with mqtt.js).

Provides HTTP REST API (see HTTP API documentation).

Includes MQTT client library.

Includes MQTT server implementation.

Supports MQTT will messages.

Supports MQTT retained messages.

Custom message handling and forwarding for clustering.

Demo for Alibaba Cloud MQTT client connection.

GraalVM compilation to native executable.

Spring Boot starter (mica-mqtt-spring-boot-starter) for rapid integration.

Prometheus + Grafana metrics support via the starter.

Redis pub/sub based clustering (see mica-mqtt-broker module).

3. Use Cases

IoT cloud‑side MQTT broker.

Edge‑side IoT message communication.

Group chat IM.

Message push services.

Simple, easy‑to‑use MQTT client.

4. Changelog

v1.2.4 - 2022-01-09

Removed unnecessary dependencies from mica-mqtt-core.

When both HTTP and WebSocket are disabled, excluded tio-websocket-server dependency.

Renamed MqttTopicUtil to TopicUtil.

Added @MqttClientSubscribe support for IMqttClientMessageListener bean.

Added custom MqttClientTemplate bean support.

Various improvements to mica-mqtt-spring-boot-starter.

Shortened MQTT version keys in codec.

Fixed will message bug.

v1.2.3 - 2022-01-03

@MqttClientSubscribe value changed to array for multi‑topic subscription.

Cached TopicFilter patterns.

Optimized client/server subscription logic; adjusted IMqttServerSubscribeValidator interface.

Added batch subscription and unsubscription to client.

Added client disconnect detection.

Configurable batch size for resubscription after disconnect.

Added onSubscribed callback to IMqttClientMessageListener.

Upgraded log4j2 to 2.17.1 in example.

5. Documentation and Examples

mica-mqtt usage documentation.

mica-mqtt-spring-boot-starter usage documentation.

HTTP API documentation.

Release version records.

Redis‑based MQTT broker clustering example.

Kafka‑based MQTT broker clustering example.

References

HTTP API documentation: https://gitee.com/596392912/mica-mqtt/blob/master/docs/http-api.md

mica-mqtt-broker module: https://gitee.com/596392912/mica-mqtt/blob/master/mica-mqtt-broker

mica-mqtt core README: https://gitee.com/596392912/mica-mqtt/blob/master/mica-mqtt-core/README.md

Spring Boot starter README: https://gitee.com/596392912/mica-mqtt/blob/master/mica-mqtt-spring-boot-starter/README.md

HTTP API docs (duplicate): https://gitee.com/596392912/mica-mqtt/blob/master/docs/http-api.md

Release changelog: https://gitee.com/596392912/mica-mqtt/blob/master/CHANGELOG.md

Redis clustering example: https://gitee.com/596392912/mica-mqtt/tree/master/mica-mqtt-broker

Kafka clustering example: https://gitee.com/openharmony-tpc/talkweb_mqtt

backendJavaSpring BootGraalVMIoTBrokerMQTT
Java Architecture Diary
Written by

Java Architecture Diary

Committed to sharing original, high‑quality technical articles; no fluff or promotional content.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.