
评价标准:社区和受欢迎度
社区规模:通过 GitHub Star 数、贡献者和 issue 的数量进行评估。
受欢迎程度:通过研究用户群、下载量和 Docker 拉取数来评估。
项目活跃度:通过 GitHub 提交、PR 和发布的频率进行评估,尤其是过去 12 个月内的相关数据。
EMQX:GitHub 上 Star 数最高的 MQTT Broker,有 12.6k 个 Star。
Mosquitto:Star 数排名第二,但使用最为广泛。
NanoMQ:目前最新、最活跃的 MQTT Broker 之一。
VerneMQ:虽然在 Github 上的开发并不活跃,但 Star 数排名第三。
主流开源 MQTT Broker 概览
EMQX

支持大规模集群部署
高可用性
横向可扩展性
高性能和低延迟
丰富的企业功能
率先引入 MQTT over QUIC
配置较为复杂
插件生态有限,难以开发扩展
理解日志具有一定难度
Mosquitto

安装和使用方便
支持 MQTT 5.0 协议
轻量级,资源占用少
拥有活跃的开源社区
单线程架构
生产环境中可扩展性有限(<100k)
不支持集群
缺少企业级功能
有限的云原生支持
NanoMQ

设计轻巧
多线程和异步 I/O
高度便携
启动占用空间小
部署方便
能够与无代理协议桥接
不支持集群
作为早期项目,社区和用户群规模较小
文档和教程不多
缺少企业级功能(如数据集成)
VerneMQ
保证高可用性
具有横向扩展性
支持消息持久化
未经验证的集群架构
文档不足
企业级功能有限
不再积极开发
可扩展性、性能和可靠性
可扩展性:能否横向扩展以处理百万级并发 MQTT 连接?
可用性:是否支持关键业务应用的高可用集群?
性能:每秒能路由和交付多少 QoS/0/1/2 MQTT 消息?
延迟:能以多快的速度将 MQTT 消息从一个 MQTT 客户端分发和传递到另一个 MQTT 客户端?
可靠性:是否支持 MQTT 消息持久性和无数据丢失的交付?
MQTT 协议与连接性
安全性与认证鉴权
此外,EMQX 还提供高级安全功能,例如与外部数据库集成、OCSP Stapling、细粒度访问控制策略、抖动检测以及对 OAuth 2.0 授权的支持。
数据集成

可操作性、可观测性与兼容性

汇总对比表

结语