引言
EMQX 和 VerneMQ 都是用 Erlang/OTP 开发的高性能、分布式开源 MQTT Broker,以其稳定性、容错性和扩展性著称。
EMQX 是目前寰球最受欢迎的 MQTT Broker 之一,而 VerneMQ 我的项目近年来却没有踊跃地开发和保护。
本文是《2023 年 MQTT Broker 比照》系列博客的第四篇,咱们将对这两个 Broker 进行简要的比照剖析。
EMQX 简介
EMQX 于 2012 年在 GitHub 公布,遵循 Apache 2.0 许可证。它旨在以百万级的并发连贯为须要高可扩展性 MQTT Broker 的利用场景提供解决方案。
EMQX 是目前寰球最具扩展性的 MQTT Broker。通过采纳基于 Mria+RLOG 的分布式架构,最新版本 EMQX 5.0 单个集群可反对至少 23 个节点,可能承载高达 1 亿的 MQTT 并发连贯。
详情请浏览:高度可扩大,EMQX 5.0 达成 1 亿 MQTT 连贯
EMQX 提供了丰盛的企业性能、数据集成、云托管服务以及来自 EMQ 公司的商业反对。多年来,EMQX 凭借其卓越的性能、可靠性和扩展性,在大型企业、守业公司和个人用户中博得了宽泛的认可,被广泛应用于物联网、工业物联网、智能汽车和电信等各个领域。
长处:
- 反对大规模部署
- 高可用
- 程度可扩展性
- 高性能和高牢靠
- 提供丰盛的企业性能
- 率先引入 MQTT over QUIC
Cons: 毛病:
- 难以无效治理
- 配置较为简单
- 日志不易了解
VerneMQ 简介
VerneMQ 我的项目于 2014 年启动,最后由 Erlio GmbH 开发。它是第二个用 Erlang/OTP 编写的 MQTT Broker,遵循 Apache 2.0 许可证,局部代码参考了 EMQX 我的项目。
在架构设计上,VerneMQ 反对应用 LevelDB 进行 MQTT 音讯长久化,并采纳基于 Plumtree 库的集群架构,该库实现了 Epidemic Broadcast Trees 算法。
然而,只管 Plumtree 集群架构从实践上看很完满,但其可行性尚未失去证实。VerneMQ 团队和社区破费了多年工夫尝试解决零碎存在的问题,如网络决裂、数据不统一和解体复原等,然而获得的成绩无限。
目前,该我的项目已不再踊跃地开发和保护,在过来的一年中只有大概 50 次提交。
长处:
- 高可用
- 程度可扩展性
- 反对音讯长久化
Cons: 毛病:
- 未经验证的集群架构
- 文档有余
- 企业性能无限
- 短少开发保护
社区状况
EMQX 和 VerneMQ 我的项目都托管在 GitHub 上。EMQX 始于 2012 年,是最早且目前 Star 数最多的 MQTT Broker 之一,领有 11.4k Stars。VerneMQ 我的项目创立于 2014 年,目前有 3k Stars。
性能个性
EMQX 和 VerneMQ 都残缺反对 MQTT 3.1.1 和 MQTT 5.0,反对 MQTT over WebSocket 和 SSL/TLS 加密。同时它们都反对多种身份认证形式,包含用户名明码、JWT、LDAP 和 OAuth 2.0。
EMQX 反对多个协定网关,包含 LwM2M/CoAP、MQTT-SN 和 Stomp。EMQX 5.0 引领了 MQTT over QUIC 技术,MQTT over QUIC 通过多路复用、更快的连贯建设和迁徙等个性,无望成为下一代 MQTT 规范。
此外,EMQX 还提供了一系列治理和集成性能,如 HTTP API、WebHook 和规定引擎。通过这些内置的数据桥接性能能够轻松地与 Kafka、SQL、NoSQL 数据库以及云服务进行集成。
扩展性和性能
EMQX 和 VerneMQ 都基于分布式架构,具备高性能、低提早和可扩大的特点,都可能实现单集群百万级并发连贯反对。
EMQX 已有超过 30000 个集群在生产环境中部署,具备通过验证的扩展性和可靠性。最新的 EMQX 5.0 在一个 23 个节点集群的基准测试中胜利实现了 1 亿 MQTT 连贯。
尽管 VerneMQ 在实践和设计上应该可能很好地工作,但对于其扩展性和性能的基准测试报告很少。您能够应用 MQTT 负载测试工具(例如 emqtt-bench、emqttb 或 XMeter 云服务)对其进行基准测试。
? 代表对于表中比照的相干条目,咱们未能找到任何公开的文档或材料。
数据集成(开箱即用)
VerneMQ 对 MQTT 数据集成的反对无限。用户能够通过编写插件,将数据导入内部数据库或云服务。
EMQX 内置了基于 SQL 的规定引擎,能够轻松实现在 Broker 内实时提取、过滤、解决和转换 MQTT 音讯。
EMQX 企业版能够利用规定引擎和内置的数据桥接性能与 Kafka、数据库以及云服务实现无缝的数据集成。
扩大开发
EMQX 和 VerneMQ 都反对应用钩子和插件实现灵便的扩大。此外,EMQX 还提供了多协定网关扩大,使用户可能开发新的连贯协定。
可操作性和可观测性
EMQX 领有易用的 Dashboard 和丰盛的 HTTP API,反对通过 StatsD、Prometheus 和 Grafana 进行监控。而 VerneMQ 部署简略、配置不便,但它在治理和监控方面还不够欠缺。
结语
简而言之,EMQX 是 2023 年在生产环境中部署 MQTT Broker 的最佳抉择之一。如果想要深刻理解分布式 MQTT Broker 的设计原理和实现难点,能够参考 EMQX 和 VerneMQ 在 GitHub 上的源代码。
版权申明:本文为 EMQ 原创,转载请注明出处。
原文链接:https://www.emqx.com/zh/blog/emqx-vs-vernemq-2023-mqtt-broker-comparison