开源 Broker 与客户端对比
本地克隆见:../开源项目/
许可证与集群能力请以各仓库当前 LICENSE / 文档为准(商业版规则会变)
1. Broker 总览
| 项目 |
语言 |
许可(常见) |
特点 |
本地目录 |
| Eclipse Mosquitto |
C |
EPL-2.0 / EDL |
轻量、易部署、桥接成熟 |
mosquitto/ |
| EMQX |
Erlang/OTP |
注意版本许可变化(近年 BSL 等) |
高并发、规则引擎、云边功能全 |
emqx/ |
| HiveMQ CE |
Java |
Apache-2.0 |
规范实现严谨、扩展生态 |
hivemq-community-edition/ |
| NanoMQ |
C |
见仓库 |
边缘/嵌入式友好、轻量 |
nanomq/ |
| VerneMQ |
Erlang |
Apache-2.0(发行策略另查) |
集群向 |
(未默认克隆) |
选型直觉:
- 单机/产线小规模/学习:Mosquitto
- 边缘网关资源紧:NanoMQ / Mosquitto
- 大规模接入、规则流转:评估 EMQX(看清许可)
- 强调 MQTT5 正确性与扩展:HiveMQ CE
2. 客户端库
| 项目 |
语言 |
本地目录 |
说明 |
| Eclipse Paho Python |
Python |
paho.mqtt.python/ |
脚本、测试、ROS 辅助常用 |
| Eclipse Paho C |
C |
paho.mqtt.c/ |
嵌入式/高性能 C 客户端 |
| MQTT.js |
JavaScript |
MQTT.js/ |
Node / 前端 WebSocket |
| HiveMQ MQTT Client |
Java |
(未默认克隆) |
强 MQTT5、响应式 API |
| Paho 其它语言 |
Java/Go/… |
按需另克隆 |
https://eclipse.dev/paho/ |
3. ROS 2 相关
| 项目 |
本地目录 |
说明 |
| mqtt_client(ika-rwth-aachen) |
ros2_mqtt_client/ |
ROS 2 ↔ MQTT 桥接常用之一 |
详见 07-ROS2与MQTT集成.md。
4. 功能维度对比(工程关注点)
| 维度 |
关注问题 |
| MQTT 版本 |
是否完整 5.0 |
| 持久化 |
重启后 Retain / 会话? |
| 桥接 |
多 Broker 互联? |
| 集群 |
单机够用还是要水平扩展? |
| 认证插件 |
证书 / JWT / HTTP 钩子? |
| 可观测 |
指标、慢订阅、追踪 |
| 资源占用 |
能否跑进网关/工控机 |
5. 快速体验(Mosquitto 示例)
1 2 3 4 5 6
| mosquitto -c mosquitto.conf
mosquitto_sub -h localhost -t 'test/#' -v mosquitto_pub -h localhost -t 'test/hello' -m 'world' -q 1
|
下一篇:07-ROS2与MQTT集成.md
正在加载留言…