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.
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
Java Architecture Diary
Committed to sharing original, high‑quality technical articles; no fluff or promotional content.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.