开源 Broker 与客户端对比

开源 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

文章互动

阅读 --

留言

0 条留言

正在加载留言…