开源 MQTT Broker 对比

截止 2021 年,物联网行业里可选的MQTT Broker有很多,除了经典的Mosquitto和AWS、Azure,百度云、阿里云、IBM等几个提供物联网MQTT接入服务的产品外,可用于商业生产的MQTT Broker还有多款。

本文选取了几个热门开源的 MQTT Broker,其中部分项目提供商业支持,做简单选型对比。

对比项目 EMQ HiveMQ VerneMQ ActiveMQ Mosquitto
License 开源+商业版 开源+商业版 开源+商业版 开源 开源
公司/社区 EMQ HiveMQ VerenMQ Apache 基金会 Eclipse 基金会
开源协议 Apache License 2.0 Apache License 2.0 Apache License 2.0 Apache License 2.0 EPL/EDL licensed
开发团队 杭州映云科技有限公司 dc-square 股份有限公司,德国 Octavo Labs AG,瑞士 Apache 项目维护者 Eclipse 开源社区
开发语言 Erlang Java Erlang Java C
项目历史 2012年开始开源,2016年开始商业化 2013 年成立,一直以闭源方式向客户提供软件,2019 年开源 提供基于开源的商业化定制服务 2004 由 LogicBlaze 创建;原本规划的 ActiveMQ 的下一代开源项目 Apollo 已经不活动(4年没有代码更新)
集群架构 支持 仅企业版 支持 支持 不支持(有伪集群实现)
系统部署 物理机、虚拟机、K8S 物理机、虚拟机、K8S 物理机、虚拟机、K8S 物理机、虚拟机、容器 物理机、虚拟机、容器
支持协议 MQTT、CoAP、MQTT-SN、WebSocket、TCP、UDP、LwM2M MQTT MQTT JMS、Openwire、Stomp、AMQP、MQTT、WebSocket XMPP MQTT、WebSocket
系统性能 单机性能较高,单机支持百万级并发,集群支持千万级并发 集群支持千万级并发 集群支持百万级并发 支持集群 单机10W
MQTT v3.1,v3.1.1,v5.0 v3.1,v3.1.1,v5.0 v3.1,v3.1.1,v5.0 v3.1 v3.1,v3.1.1,v5.0
边缘计算 EMQ X Edge 支持树莓派,ARM 等架构,支持数据同步到云服务 Azure IoT Hub AWS 不支持 不支持 不支持 支持(自身比较轻量)
安全与认证 TLS/DTLS、X.509证书、JWT、OAuth2.0、应用协议(ID/用户名/密码)、数据库与接口形式的认证与 ACL 功能(LDAP、DB、HTTP) TLS/DTLS、X.509证书、JWT、OAuth2.0、应用协议(ID/用户名/密码)、配置文件形式的认证与 ACL 功能 TLS/DTLS、X.509证书、配置文件形式的认证与 ACL 功能、数据库形式的认证与 ACL 功能,但支持数据库较少 LDAP (JAAS)、Apache Shiro 等待
运行持久化 支持将消息数据持久化至外部数据库如 Redis、MySQL、PostgreSQL、MongoDB、Cassa、Dynamo 等,需企业版,开源版宕机则丢失 开源企业均支持本地持久化,采用磁盘系统,支持备份,导出备份 支持持久化至 Google LevelDB AMQ、KahaDB、JDBC、LevelDB 等待
扩展方式 Webhook、Trigger、Plugin 等,支持 Erlang 与 Lua、Java、Python 扩展开发,支持 Webhook 开发,侵入性不强 Trigger、Plugin 等,使用 Java 技术栈开发,提供方便开发的 SDK Trigger、Plugin 等,支持 Erlang 与 Lua 扩展开发 Java 扩展 等待
数据存储 企业版适配数据库:Redis、Mysql、PostgreSQL、MongoDB、Cassandra、OpenTSDB、TimescaleDB、InfluxDB 适配消息队列:Kakfa、RabbitMQ、Pulsar 桥接模式:支持桥接至标准 MQTT 协议消息服务
开源版支持 HTTP 将数据同步、存储
适配数据库:无,提供 Java SDK 开发进行适配
消息队列:Kafka 桥接模式:支持桥接至标准 MQTT 协议消息服务
适配数据库:无,提供 Erlang 和 Lua 扩展开发 适配消息队列:无 桥接模式:支持桥接至标准 MQTT 协议消息服务 适配数据库:JDBC、KahaDB、LevelDB 适配消息队列:无 桥接模式:支持通过 JMS 桥接 等待
管理监控 支持可视化的 Dashboard,实现集群与节点的统一集中管理 支持第三方监控工具 Prometheus ,提供可视化 Grafana 界面模板 支持可视化的 HiveMQ Control Center,实现集群与节点统一管理 支持第三方监控工具 Prometheus ,可提供可视化 Grafana 界面 支持 InfluxDB 监控 内置简单状态管理可视化界面 支持第三方监控工具 Prometheus ,可提供可视化 Grafana 界面 支持可视化的监控界面 支持第三方监控工具 Prometheus ,可提供可视化 Grafana 界面 通过 MQTT 订阅系统主题
规则引擎 支持规则引擎,基于 SQL 的规则引擎给予 Broker 超越一般消息中间件的能力。除了在接受转发消息之外,规则引擎还可以解析消息的格式(企业版)。
规则引擎由消息的订阅,发布,确认的事件触发,根据消息的负载来执行相应的动作,降低应用开发的复杂度。
不支持 不支持 不支持 不支持
开发集成 支持通过 REST API 进行常用的业务管理操作如: 调整设置、获取 Broker 状态信息、进行消息发布、代理订阅与取消订阅、断开指定客户端、查看客户端列表、规则引擎管理、插件管理,提供 Java SDK、Python SDK 直接编码处理业务逻辑 无,提供 Java SDK 在应用系统在编码的层面操作进程,非常灵活但耦合性高 提供少量 REST API,用于监控与状态管理、客户端管理等。 缺乏代理订阅、业务管理等功能和 API 提供少量队列管理 REST API 等待
适用场景 优势在于高并发连接与高吞吐消息的服务能力,以及物联网协议栈支持的完整性;扩展能力较强,无需过多开发 有一定高并发连接与高吞吐消息的服务能力,物联网协议栈的完整性较弱仅支持 MQTT 协议;缺乏开箱即用的功能插件,功能必须编码使用 基础的并发连接与高吞吐消息的服务能力,物联网协议栈的完整性较弱仅支持 MQTT 协议;扩展能力较差,基础的业务组件支持度不够,商业成熟度不足客户量较少,缺乏开箱即用的功能插件 核心是消息队列系统,主要用于支持异构应用之间的消息通信,比如用于企业消息总线等;后面支持了部分物联网协议。ActiveMQ 比较适合系统既要支持传统的异构应用之间需要通信,也需要支持小型物联网接入支持的用户。 轻量简便的 MQTT Broker,工控、网关或小规模接入项目

开源 MQTT Broker 对比相关推荐

  1. MQTT Broker 比较与选型

    开源 MQTT Broker 对比 截止 2020,物联网行业里可选的MQTT Broker有很多,除了经典的Mosquitto和AWS.Azure,百度云.阿里云.IBM等几个提供物联网MQTT接入 ...

  2. 物联网实战-基于开源 MQTT消息服务器EMQ X

    物联网协议对比 对于物联网,最重要的是在互联网中设备与设备的通讯,现在物联网在internet通信中比较常见的通讯协议包括:HTTP.websocket.XMPP.COAP.MQTT HTTP和web ...

  3. 一种通过MQTT Broker实现远程调试、创建网络隧道的解决方案

    前言 先说一下场景需求: 1.远程ssh访问设备,但是设备端不具备公网访问能力. 2.物联网采集网关,通过4G连接外网,网关部署在项目现场,我们不知道网关的IP,就算知道,网络链路也不通.对于网关的远 ...

  4. MQTT Broker mosquito配置以及使用tls证书登录附上Python调用代码

    MQTT Broker mosquito配置以及使用tls证书登录 文章目录 MQTT Broker mosquito配置以及使用tls证书登录 1. 前言 2. 安装 3. mosquito相关命令 ...

  5. EMQX 入门教程 选型篇①——MQTT Broker 服务器选型

    文章目录 一.MQTT Broker 服务器选型 二.更多 MQTT Broker 服务器 三.参考 一.MQTT Broker 服务器选型 | | EMQ-X | HiveMQ | ActiveMQ ...

  6. Atitit 硬件 软件 的开源工作 差异对比

    Atitit 硬件 软件 的开源工作 差异对比 1.1. 模块化,标准化,以及修改的便捷性1 1.2. 生产和发布成本 1 1.3.   3. 入行门槛搞2 1.4.  在软件业极度发达的今天,任何具 ...

  7. 【全局地图mapping】二维全局地图的开源方案及对比--gmapping、hector、karto、cartographer

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.gmapping算法建图[基于Raoo-Blackwellize ...

  8. 最后防线:三款开源HIDS功能对比评估

    本文是对Wazuh, Osquery, AgentSmith这三款开源HIDS进行功能性的评估,目的是取长补短,做一个完善的HIDS系统. 简介 HIDS的功能主要是依靠agent的数据收集功能, 所 ...

  9. 最后防线:三款开源HIDS应用对比评估

    本文仅从应用角度评估Wazuh, Osquery, AgentSmith这三款HIDS,针对企业立马使用HIDS,或者包装成方案的场景. 简介 Wazuh:一款免费.开源的企业级安全监控解决方案,用于 ...

最新文章

  1. Spring MVC 中的 forward 和 redirect
  2. Python的单引号、双引号和三引号的字符串
  3. 开发机多用户 xdebug 远程调试 PhpStorm
  4. python敏感字替换_python用类实现文章敏感词的过滤方法示例
  5. mysql typeindex_explain mysql的type字段,索引的类型
  6. python电影推荐系统的设计与实现_一种电影推荐系统的设计与实现
  7. 简书 android底部导航,使用recyclerView封装底部导航栏
  8. 太原市智能家居行业协会成立
  9. matlab坐标轴非均匀分布,matalb——生成离散非均匀随机数
  10. android 桌球游戏,安卓上目前最台球游戏《台球帝国》测评
  11. 亚马逊SP-API对接-网站授权
  12. 腾讯地图手把手教你实现微信小程序路线规划
  13. python快乐数,快乐数
  14. 水星路由器wan口ip显示0_水星路由器WAN口获取不到ip地址怎么办?
  15. (附源码)springboot应用支撑平台和应用系统 毕业设计 984655
  16. 【眼见为实】自己动手实践理解数据库REPEATABLE READ Next-Key Lock
  17. 计算机双工模式,100M 全双工、100M 半双工、10M全双工几种模式分别测试
  18. JAVA核心编程之集合
  19. 搭建Prometheus监控报警
  20. html让同一行的文字和图片居中对齐显示

热门文章

  1. optipng图片压缩工具
  2. 2017 火种CTF Writeup
  3. HCIP第十三天笔记
  4. 甘特图:项目管理中的任务分解工具
  5. Mes系统批次管理功能
  6. myeclipse中修改字体大小
  7. Unity脑残问题(一)
  8. 三段式电流保护 Matlab仿真
  9. 【接口、多态】小练习
  10. 华硕K42J触摸屏禁用