到目前为止,比较流行的开源 MQTT 有几个:
- Mosquitto:由Eclipse Paho项目提供,是一个流行的开源MQTT代理,支持MQTT 3.1和3.1.1协议版本。Mosquitto具有轻量级、易于安装和配置的特点,同时提供了良好的性能和可扩展性。它还支持多种操作系统和平台,包括Linux、Windows和MacOS等。Mosquitto的社区活跃,拥有广泛的用户群体和开发者支持。
- VerneMQ:是一个高性能、可扩展的开源MQTT代理,支持MQTT 3.1.1和5.0协议版本。VerneMQ采用Erlang语言编写,具有出色的并发性能和容错能力。它支持集群部署和水平扩展,可以处理大量的连接和消息。VerneMQ还提供了丰富的插件和扩展机制,方便用户进行定制开发。
- HiveMQ:是一个企业级的开源MQTT代理,支持MQTT 3.1、3.1.1和5.0协议版本。HiveMQ采用Java语言编写,具有高度的可配置性和可扩展性。它提供了丰富的功能和特性,包括集群支持、负载均衡、SSL/TLS加密、WebSockets支持等。HiveMQ还提供了商业支持和服务,适合企业级用户
- EMQ X 是一个基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器,是目前开源社区中最流行的 MQTT
消息服务器之一。它支持 MQTT 5.0 和 3.x 协议标准,具有良好的伸缩性、安全性和可靠性,同时也提供了丰富的功能和特性,如海量连接、高性能、低时延、高可用等。 - NanoMQ:是一个轻量级、高性能的开源MQTT代理,由EMQ X项目提供。NanoMQ采用C语言编写,具有较低的资源消耗和出色的性能表现。它支持MQTT 3.1.1和5.0协议版本,同时提供了多种连接方式和认证机制。NanoMQ还具有良好的可移植性,可以部署在多种操作系统和平台上。
1.概览
本文选取的开源 MQTT Broker 主要基于以下两个标准:
- 开源项目的社区规模、受欢迎程度和项目活跃度。
- 与资源受限的工业设备和网关的兼容性。
基于此,我们选出了三款最热门的开源 MQTT Broker: - EMQX:GitHub 上 Star 数最多的 MQTT Broker,拥有 11.6k Stars。EMQX 在启动时的内存占用约为
50M,支持集群功能。 - Mosquitto:Star 数位居第二但是使用最为广泛的 MQTT Broker。它采用单线程架构,在启动时的内存占用不到 1M。
- NanoMQ:目前最新且最活跃的 MQTT Broker 之一。它支持多线程和异步 IO,在启动时的内存占用约为2M。
以下是这三个项目在 GitHub 上的相关概况:
2. Mosquitto
优点
- 轻量级、占用资源少
- 简单易用
缺点 - 不支持多线程和集群
- 不支持在云端部署
3. NanoMQ
优点
- 支持多线程和异步 IO
- 启动占用资源少
- 可以与无代理协议桥接
缺点 - 项目还处于早期阶段
- 不支持集群
4. EMQX
优点
- Masterless 集群和高可用性
- 具有高性能和低延迟
- 提供丰富的认证机制
- 即可以在边缘部署也可以在云端部署
- 首个支持 MQTT over QUIC 的 MQTT Broker
缺点 - 安装和配置相对复杂
- CPU 和内存使用率较高
5. EMQX简单压测截图
原文链接:https://www.emqx.com/zh/blog/top-3-open-source-mqtt-brokers-for-industrial-iot-in-2023