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 既能够在云端部署,也能够在边缘部署。在边缘,它能够与各种工业网关集成,例如 N3uron、Neuron、Kepware。在云环境中,EMQX 可能在 AWS、GCP、Azure 等支流的公共云平台上与包含 Kafka、数据库和云服务在内的多种技术无缝集成。
借助全面的企业级性能、数据集成能力、云托管服务和 EMQ 团队提供的商业反对,EMQX 广泛应用于工业物联网畛域的多种重要场景。
长处
- 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 在内的多种平台上运行。
长处
- 轻量级、占用资源少
- 简略易用
毛病
- 不反对多线程和集群
- 不反对在云端部署
利用场景
- 工厂自动化
- 智能制作
- 智能硬件
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 架构上顺畅运行。
长处
- 反对多线程和异步 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 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