前言:
今天看官们对“zeromq qt”大致比较讲究,姐妹们都需要分析一些“zeromq qt”的相关知识。那么小编在网摘上网罗了一些有关“zeromq qt””的相关文章,希望咱们能喜欢,大家一起来了解一下吧!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 共同合作,充分发挥它们各自的优势。
标签: #zeromq qt