首页 > 其他分享 >EMQX vs NanoMQ | 2023 MQTT Broker 对比

EMQX vs NanoMQ | 2023 MQTT Broker 对比

时间:2023-04-19 15:09:36浏览次数:52  
标签:Broker 支持 联网 MQTT vs NanoMQ EMQX

EMQX vs NanoMQ | 2023 MQTT Broker 对比_IOT

引言

EMQXNanoMQ 都是由全球领先的开源物联网数据基础设施软件供应商 EMQ 开发的开源 MQTT Broker。

EMQX 是一个高度可扩展的大规模分布式 MQTT Broker,能够将百万级的物联网设备连接到云端。NanoMQ 则是专为物联网边缘场景设计的轻量级 Broker。

本文中我们将对 EMQX 和 NanoMQ 这两个 Broker 进行详细的对比分析。

EMQX 简介

EMQX 是目前全球最具扩展性的 MQTT 消息服务器,广泛用于物联网、工业物联网(IIoT)和车联网(IoV)等各类关键业务场景。其使用 Erlang/OTP 开发,采用了去中心化的分布式架构,具有高可用性并且支持横向扩展。

最新版本 EMQX 5.0 能够通过一个由 23 个节点组成的集群,支持高达 1 亿的 MQTT 并发连接。

了解详情请浏览:高度可扩展,EMQX 5.0 达成 1 亿 MQTT 连接

EMQX vs NanoMQ | 2023 MQTT Broker 对比_MQTT_02

优点

  • 支持大规模部署
  • 支持集群,高度可扩展
  • 高性能和高可靠
  • 提供丰富的企业级功能
  • 开箱即用的数据集成功能

缺点:

  • 上手复杂
  • 难以有效管理

NanoMQ 简介

NanoMQ 是一个轻量级的 MQTT Broker,专为 IoT 边缘场景设计。它采用纯 C 语言编写,基于 NNG 的异步 I/O 多线程 Actor 模型,完全支持 MQTT 3.1.1 和 MQTT 5.0。

在单节点的场景下,NanoMQ 表现出很高的性能。其最为吸引人的优点是其轻便小巧,具备高度的可移植性和兼容性。它可以部署在任何支持 POSIX 标准的平台上,并且可以在多种 CPU 架构上运行,包括 x86_64、ARM、MIPS 和 RISC-V 等等。

EMQX vs NanoMQ | 2023 MQTT Broker 对比_数据集成_03

优点

  • 设计轻巧
  • 具有高度的轻便性
  • 占用启动空间小
  • 部署方便
  • 能够与无代理协议桥接

缺点

  • 不支持水平扩展
  • 社区和用户群规模较小
  • 文档和教程不多
  • 不支持集群
  • 缺少企业级功能(如数据集成)

社区情况

EMQX 和 NanoMQ 两个开源项目都托管在 GitHub 上。EMQX 自 2012 年推出以来,已经成为最受欢迎的 MQTT Broker 之一,目前 Star 数为 11.4k 。NanoMQ 是一个于 2020 年发起的新项目,处于初期阶段,目前有 800+ Star。这两个项目都在持续开发中,在过去的 12 个月里有数千次 Commit 提交。

EMQX vs NanoMQ | 2023 MQTT Broker 对比_桥接_04

功能特性

EMQX 和 NanoMQ 都完全遵循 MQTT 3.1.1 和 MQTT 5.0 规范,支持 MQTT over WebSocket 和 SSL/TLS 加密,并且是率先支持 MQTT 新一代协议 MQTT Over QUIC 的 Broker。

EMQX 提供多个协议网关支持,包括 LwM2M/CoAP、MQTT-SN 和 Stomp。而 NanoMQ 则支持将边缘场景中去中心化的协议如 DDS、ZeroMQ 和 Nanomsg/NNG 等转换成 MQTT 消息并与云端桥接。

两者都支持多种身份认证方式,包括用户名密码、JWT。EMQX 还额外支持 OAuth 2.0 身份验证和 IP 白名单/黑名单。

在企业级功能方面,EMQX 企业版提供了强大的规则引擎和数据桥接功能,可以轻松地与 Kafka、SQL、NoSQL 数据库和云服务进行集成。

EMQX vs NanoMQ | 2023 MQTT Broker 对比_桥接_05

扩展性和性能

EMQX 因其极高的可扩展性和优异性能成为大规模物联网关键业务项目的首选。此外,其分布式的集群架构还保证了高可用性。

NanoMQ 基于 NNG 的异步 I/O 和多线程模型,具有优秀的轻量级设计。它能够有效地利用 CPU 和内存资源,在现代 SMP 系统上可以良好的支持多内核,并且其启动占用空间不到 200k,具有小巧高效的特点。

简而言之,两者在性能、扩展性和可靠性方面与其他 MQTT Broker 相比都有很大的优势。

EMQX vs NanoMQ | 2023 MQTT Broker 对比_数据集成_06

可操作性和可观测性

EMQX 拥有用户友好的 Dashboard 和丰富的 HTTP API,支持通过 StatsD、Prometheus 和 Grafana 进行监控。NanoMQ 部署简单、配置方便、管理便捷,但它在管理和监控方面还不够完善。

这两个 Broker 都相对容易使用,但是 NanoMQ 的极简设计更利于初学者学习和掌握 MQTT。

EMQX vs NanoMQ | 2023 MQTT Broker 对比_MQTT_07

数据集成

NanoMQ 作为一个轻量级 Broker,没有提供数据集成功能。而 EMQX 提供了丰富的数据集成,特别是运行在云端的企业版,可以通过内置的数据桥接功能与 Kafka、数据库和云服务实现无缝集成。

EMQX vs NanoMQ | 2023 MQTT Broker 对比_物联网_08

EMQX vs NanoMQ | 2023 MQTT Broker 对比_物联网_09

桥接 NanoMQ 到 EMQX

我们可以将 NanoMQ 部署在物联网边缘端的小型设备或网关上,然后通过桥接功能把数据汇总和传输到云端的大型 EMQX 集群。

EMQX vs NanoMQ | 2023 MQTT Broker 对比_数据集成_10

结语

EMQX 和 NanoMQ 是当前最活跃的 MQTT Broker 项目,拥有优秀的开源社区和商业支持。

EMQX 凭借其扩展性、可靠性和丰富的功能,成为物联网关键业务云端 MQTT 消息服务的首选。而轻量、高效、低成本的 NanoMQ 则更适用于工业物联网和边缘物联网应用。

您可以根据自己的需求和场景选择使用其中一个或两个配合使用。我们相信这两个 MQTT Broker 将在未来引领 MQTT 技术创新。

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

原文链接:https://www.emqx.com/zh/blog/emqx-vs-nanomq-2023-mqtt-broker-comparison

标签:Broker,支持,联网,MQTT,vs,NanoMQ,EMQX
From: https://blog.51cto.com/u_15204296/6206291

相关文章

  • vsftp配置
    本文使用vsftp来部署ftp服务,要求如下:1、使用ftp用户登录指定的家目录,该ftp用户禁止本地登录,禁止访问非家目录外其他目录;2、不同用户登录不同家目录;具体操作配置如下:1、安装vsftp的rpm包# yuminstallvsftpd.x86_642、创建ftp用户允许登录ftp服务、禁止登录本地、指定家目录mkdir......
  • Linux apt-get vs apt All In One
    Linuxapt-getvsaptAllInOneapt-getaptdemos(......
  • VMware Site Recovery Manager 8.7 (for vSphere 8 U1) - 数据中心灾难恢复 (DR)
    请访问原文链接:https://sysin.org/blog/vmware-srm-8/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgSiteRecoveryManager8.7|18APR2023|Build21590800什么是SiteRecoveryManager(SRM)?SiteRecoveryManager是业界领先的灾难恢复(DR)软件,可自动编......
  • VMware vSphere 8.0 Update 1 正式版发布 - 企业级工作负载平台
    ESXi8.0U1&vCenterServer8.0U1请访问原文链接:https://sysin.org/blog/vmware-vsphere-8-u1/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org2023-04-18,VMwarevSphere8.0Update1正式版发布。企业级工作负载平台vSphere将云计算的优势引入本地部署工作负......
  • VSCode修饰器报错,对修饰器的实验支持功能在将来的版本中可能更改
    报错内容对修饰器的实验支持功能在将来的版本中可能更改。在“tsconfig”或“jsconfig”中设置“experimentalDecorators”选项以删除此警告解决办法方法一:设置VSCode选项管理==>设置==>搜索experimentalDecorators==>打上勾勾方法二:增加jsconfig文件在根目录下新......
  • linux-LVS
    LVS一、概述1.常见负载均衡常见负载均衡对比优势缺点硬件:F5性能好技术支持价格昂贵购买2台1对.lvs工作四层效率极其高对数据做的转发负载均衡部署维护(运维成本较高)nginx/tengine/openresty(lua)使用简单支持4层(1.9版本后支持)和7层反向代理......
  • 四月学习之LVS shell脚本配置DR模型
    1、DS脚本配置#!/usr/bin/bashVIP=172.16.1.100RS1=172.16.1.5RS2=172.16.1.6PORT=80SCHEDULER=rrDEV=eth1:1case$1instart)#配置虚拟IP地址VIP cat>/etc/sysconfig/network-scripts/ifcfg-${DEV}<<-EOF TYPE=Ethernet BOOTPROTO=none DEFROUTE=y......
  • VS2010在使用过程中遇到的问题
    一、解决执行后看不到结果,只是屏幕一闪。第一次使用vs2010的同学可能会遇到在执行文件(执行文件·:按下CTRL+F5)时,只出现屏幕一闪,没有看到结果。那么不用慌,这不代表你没有成功。只是,执行速度快,一闪而过。解决方法,如下步骤:1)右击该项目 2)点击属性3)点击连接器4)点击系统5)在右侧会看到子系......
  • VSCode 缩进参考线和垂直标尺
    设置方法:文件–》首选项–》设置–》--》搜索“editor.rulers”--》更改设置"editor.rulers":[120],或者其他期望的值,即可。......
  • 一个Java线程的线生(线生 vs 人生)
    java线程的使用1.Java多线程概述下面我们看下Java的多线程作者:博学谷狂野架构师GitHub:GitHub地址(有我精心准备的130本电子书PDF)只分享干货、不吹水,让我们一起加油!......