2023 年最适用于工业物联网领域的三款开源 MQTT Broker

简介: 本文对比分析了 2023 年工业物联网领域最优秀的三款 MQTT Broker,介绍了它们的优点、缺点和应用场景。

MQTT 最初作为一种轻量级的发布/订阅消息传递协议而设计,如今已经成为工业物联网(IIoT)和工业 4.0 发展的重要基础。它的意义在于实现了各类工业设备与云端的无缝连接,促进了运营技术(OT)和信息技术(IT)的融合。

本文对比分析了 2023 年工业物联网领域最优秀的三款 MQTT Broker,介绍了它们的优点、缺点和应用场景。同时,还展示了如何利用这三款 MQTT Broker,为您的工业物联网解决方案打造统一命名空间(UNS)架构。

项目概览

本文选取的开源 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 上的相关概况:

EMQX Mosquitto NanoMQ
Official Website EMQX Eclipse Mosquitto NanoMQ
GitHub Project EMQX GitHub Mosquitto GitHub NanoMQ GitHub
Project Created 2012 2009 2020
License Apache License 2.0 EPL/EDL License MIT License
Programming Language Erlang C/C++ C
Latest Release v5.0.23 (April 2023) 2.0.15 (Aug 2022) v0.17.0 (March 2023)
GitHub Stars 11.5k 7.2k 800+
GitHub Releases 260+ 60+ 75+
GitHub Commits 14k+ 2800+ 2000+
GitHub Commits (Last 12 Months) 3000+ 500+ 1200+
GitHub PRs 6000+ 600 780+
GitHub Contributors 100+ 110+ 20+

1. EMQX

EMQX 是一款高度可扩展的分布式 MQTT Broker,适用于企业级的工业物联网部署。它支持 MQTT 5.0、MQTT-SN、SSL/TLS、MQTT over QUIC 等多种协议。它通过 masterless 集群方式实现了高可用性和水平扩展性。

凭借在 GitHub 上的 11.5k 个 Star,EMQX 已经成为市场上最受欢迎的 MQTT Broker 之一。EMQX 项目于 2012 年启动,采用 Apache 2.0 许可证进行开源。EMQX 由 Erlang/OTP 编写,这是一种能够构建高度可扩展的软实时系统的编程语言。

EMQX 既可以在云端部署,也可以在边缘部署。在边缘,它可以与各种工业网关集成,例如 N3uronNeuron。在云环境中,EMQX 能够在 AWS、GCP、Azure 等主流的公共云平台上与包括 Kafka、数据库和云服务在内的多种技术无缝集成。

借助全面的企业级功能、数据集成能力、云托管服务和 EMQ 团队提供的商业支持,EMQX 广泛应用于工业物联网领域的多种重要场景。

EMQX MQTT Cluster

优点

  • Masterless 集群和高可用性
  • 具有高性能和低延迟
  • 提供丰富的认证机制
  • 即可以在边缘部署也可以在云端部署
  • 首个支持 MQTT over QUIC 的 MQTT Broker

缺点

  • 安装和配置相对复杂
  • CPU 和内存使用率较高

应用场景

  • 汽车制造
  • 钢铁制造
  • 石油和天然气
  • 半导体制造
  • 供水

2. Mosquitto

Mosquitto 是一个广泛使用的开源 MQTT Broker,隶属于 Eclipse 基金会,遵循 Eclipse 公共许可证(EPL/EDL 许可证)。截至 2023 年 3 月,它在 GitHub 上拥有超过 7k 个 Star。Mosquitto 支持 MQTT 5.0、3.1.1、3.1,并且提供了对 SSL/TLS 和 WebSocket 的支持。

Mosquitto 由 C/C++ 编写,采用单线程架构。其轻量级设计使得它非常适合在资源受限的嵌入式设备或工业网关上部署。Mosquitto 是跨平台的,可以在包括 Linux、Windows、macOS 在内的多种平台上运行。

Mosquitto

优点

  • 轻量级、占用资源少
  • 简单易用

缺点

  • 不支持多线程和集群
  • 不支持在云端部署

应用场景

  • 工厂自动化
  • 智能制造
  • 智能硬件

3. NanoMQ

NanoMQ 是一个最新的开源 MQTT Broker 项目,于 2020 年发布。它采用纯 C 语言编写,基于 NNG 的异步 I/O 多线程 Actor 模型,支持 MQTT 3.1.1、MQTT 5.0、SSL/TLS、MQTT over QUIC。

NanoMQ 的突出亮点是轻量级、快速、极低的内存占用,这使它成为一款在工业物联网中表现非常优秀的 MQTT Broker,因为在工业物联网中效率和资源优化非常重要。此外,NanoMQ 还可以用作消息总线,将 DDS、NNG、ZeroMQ 等协议转换为 MQTT,然后再将 MQTT 消息桥接到云端。

NanoMQ 具有高度的兼容性和可移植性,只依赖于原生的 POSIX API。这使得它可以轻松地部署在任何支持 POSIX 标准的平台上,并且能够在 x86_64、ARM、MIPS、RISC-V 等各种 CPU 架构上顺畅运行。

NanoMQ

优点

  • 支持多线程和异步 IO
  • 启动占用资源少
  • 可以与无代理协议桥接

缺点

  • 项目还处于早期阶段
  • 不支持集群

应用场景

  • 汽车制造
  • 机器人:边缘服务融合
  • 工业物联网边缘网关

横向对比

EMQX Mosquitto NanoMQ
Protocols MQTT 5.0/3.1.1
MQTT over QUIC
MQTT 5.0/3.1.1 MQTT 5.0/3.1.1
MQTT over QUIC
ZeroMQ & NanoMSG
Scalability Excellent Moderate Good
Availability Excellent Moderate Moderate
Performance Excellent Good Excellent
Latency Excellent Good Excellent
Reliability High High High
Security Excellent Excellent Good
Integrations Excellent Moderate Moderate
Compatibility Good Excellent Excellent
Ease of Use Good Excellent Good
Community Support Excellent Excellent Excellent

UNS:优化工业物联网项目的 Broker 部署

统一命名空间(UNS)是一种针对工业物联网和工业 4.0 的解决方案架构,它基于 MQTT Broker,为 MQTT 主题提供统一的命名空间,为消息和结构化数据提供集中的存储库。

本文提到的这三款 MQTT Broker 可以搭建 UNS 架构,形成一个协同的系统。其中,Mosquitto 和 NanoMQ 部署在工业网关上,EMQX 部署在云端作为集中式枢纽。这种配置使得工业物联网数据可以通过 MQTT 桥接器从边缘无缝地传输到云端,然后进行聚合和采集。

MQTT Unified Namespace

结语

通过前文的介绍和对比,我们可以看到,每个 MQTT Broker 都有其独特的优点,适合不同的部署场景。EMQX 具有高扩展性和企业级功能,适合在云端部署。Mosquitto 和 NanoMQ 快速、轻便,适合在工业网关上部署。

这三款 MQTT Broker 在工业物联网应用中都扮演着非常重要的角色,它们推动了 UNS 架构的实施,促进了 IT 和 OT 的融合。在具体的工业物联网项目中,您可以根据自己的需求对这些 Broker 进行自由搭配。您可以建立一个高度协同的系统,让这些 MQTT Broker 共同合作,充分发挥它们各自的优势。

版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/top-3-open-source-mqtt-brokers-for-industrial-iot-in-2023

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
2月前
|
监控 供应链 安全
物联网卡在工业领域的应用
物联网卡在工业领域的应用极大地推动了行业的智能化、自动化和高效化进程。以下是物联网卡在工业领域中各操作类型中的具体应用作用:
|
12天前
|
消息中间件 弹性计算 运维
一图看懂云消息队列 RabbitMQ 版对比开源优势
一张图带您快速了解云消息队列 RabbitMQ 版对比开源版本的显著优势。
|
26天前
|
网络协议 物联网 网络性能优化
物联网协议比较 MQTT CoAP RESTful/HTTP XMPP
【10月更文挑战第18天】本文介绍了物联网领域中四种主要的通信协议:MQTT、CoAP、RESTful/HTTP和XMPP,分别从其特点、应用场景及优缺点进行了详细对比,并提供了简单的示例代码。适合开发者根据具体需求选择合适的协议。
51 5
|
1月前
|
传感器 监控 供应链
物联网怎么推动工业数字化转型?
物联网(Internet of Things,loT)是指通过信息传感设备,如射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等装置,按约定的协议,将任何物品与互联网连接起来,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
32 0
|
2月前
|
网络协议 物联网 网络性能优化
物联网江湖风云变幻!MQTT CoAP RESTful/HTTP XMPP四大门派谁主沉浮?
【9月更文挑战第3天】物联网(IoT)的兴起催生了多种通信协议,如MQTT、CoAP、RESTful/HTTP和XMPP,各自适用于不同场景。本文将对比这些协议的特点、优缺点,并提供示例代码。MQTT轻量级且支持QoS,适合大规模部署;CoAP基于UDP,适用于低功耗网络;RESTful/HTTP易于集成但不适合资源受限设备;XMPP支持双向通信,适合复杂交互应用。通过本文,开发者可更好地选择合适的物联网通信协议。
40 2
|
3月前
|
物联网 C# 智能硬件
智能家居新篇章:WPF与物联网的智慧碰撞——通过MQTT协议连接与控制智能设备,打造现代科技生活的完美体验
【8月更文挑战第31天】物联网(IoT)技术的发展使智能家居设备成为现代家庭的一部分。通过物联网,家用电器和传感器可以互联互通,实现远程控制和状态监测等功能。本文将探讨如何在Windows Presentation Foundation(WPF)应用中集成物联网技术,通过具体示例代码展示其实现过程。文章首先介绍了MQTT协议及其在智能家居中的应用,并详细描述了使用Wi-Fi连接方式的原因。随后,通过安装Paho MQTT客户端库并创建MQTT客户端实例,演示了如何编写一个简单的WPF应用程序来控制智能灯泡。
117 0
|
3月前
|
消息中间件 SQL 监控
RocketMQ 5.3.0 版本中 Broker IP 配置为 IPv6 的情况
【8月更文第28天】RocketMQ 是一款分布式消息中间件,支持多种消息发布和订阅模式。在 RocketMQ 5.3.0 版本中,Broker 的配置文件 `broker.conf` 允许配置 IPv6 地址。当 Broker 的 `brokerIP1` 配置为 IPv6 地址时,会对 Broker 的启动、消息推送和状态监控等方面产生影响。本文将探讨如何在 RocketMQ 中配置 IPv6 地址,并检查 Broker 的状态。
193 0
|
3月前
|
物联网 网络性能优化 Python
"掌握MQTT协议,开启物联网通信新篇章——揭秘轻量级消息传输背后的力量!"
【8月更文挑战第21天】MQTT是一种轻量级的消息传输协议,以其低功耗、低带宽的特点在物联网和移动应用领域广泛应用。基于发布/订阅模型,MQTT支持三种服务质量级别,非常适合受限网络环境。本文详细阐述了MQTT的工作原理及特点,并提供了使用Python `paho-mqtt`库实现的发布与订阅示例代码,帮助读者快速掌握MQTT的应用技巧。
86 0
|
25天前
|
消息中间件 JSON Java
开发者如何使用轻量消息队列MNS
【10月更文挑战第19天】开发者如何使用轻量消息队列MNS
65 7
|
19天前
|
消息中间件 存储 Kafka
MQ 消息队列核心原理,12 条最全面总结!
本文总结了消息队列的12个核心原理,涵盖消息顺序性、ACK机制、持久化及高可用性等内容。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。

热门文章

最新文章