最新消息
本节列出了 EMQX 5.0 中引入的新功能。
#Mria 集群架构
EMQX 5.0 采用了全新的 Mria 集群架构。有了这种 Mria 架构,一个 EMQX 集群最多可以支持:100 亿个并发 MQTT 连接 (打开新窗口),使其成为全球最具可扩展性的开源 MQTT 代理。

除了这种明显的可扩展性改进外,Mria集群架构还能够降低大规模部署中脑分裂的风险及其影响,为我们的客户提供更稳定可靠的物联网数据访问服务。
要快速入门,请参见创建 EMQX 集群。
#MQTT over QUIC
EMQX 5.0 引入了 QUIC 支持(MQTT over QUIC)作为实验性功能,并设计了独特的消息传递机制和管理方法。
作为下一代互联网协议HTTP/3的底层传输协议,基克 (打开新窗口)可以为现代移动互联网提供连接,与 TCP/TLS 协议相比,连接开销和消息延迟更少。因此,EMQX 试图用 QUIC 替换 MQTT 的传输层,这导致了基于 QUIC 的 MQTT。
要评估基于 QUIC 的 MQTT 并验证它如何改善网络连接,您可以继续阅读使用 MQTT over QUIC 。
#重新设计的物联网数据集成
除了 SQL,JQ (打开新窗口)EMQX 规则引擎也支持,因此能够处理更复杂的 JSON 数据格式。
支持向 WebHook 发送数据或与外部 MQTT 服务建立双向数据桥接。
EMQX 通过仪表盘上的流功能可视化数据集成流程。现在,您可以轻松检查规则引擎如何处理 IoT 数据以及数据如何流向外部数据服务或设备。
在未来的版本中,EMQX 还计划支持使用 Flow 进行规则和数据桥接的拖拽编排。

关于 EMQX 支持的不同数据桥接以及如何配置,请参见数据桥接。
#灵活的身份验证/授权
EMQX 5.0 内置客户端认证/授权功能,用户只需在与各种数据源集成之前做一些简单的配置工作即可进行用户认证,保证各种场景下的数据安全。
新功能
- 支持使用仪表板在集群级别进行身份验证/授权配置;
- 支持使用仪表板进行配置、调试和管理;
- 支持调整认证器和授权检查器的运行顺序;
- 通过统计执行速度和次数,实现完全可观测性;
- 支持监听级别的认证配置,提供更灵活的访问能力。
关于如何使用 EMQX 控制板或配置文件运行认证/授权配置,您可以继续阅读访问控制。
#人性化的 EMQX 仪表盘
在 EMQX 5.0 中,我们重新设计了 EMQX 仪表盘,采用了全新的 UI 设计风格,增强了视觉体验,支持了更强大、更人性化的功能。
新功能
- 新的 UI/UX 设计:大幅增强实时可观测性
- 优化的菜单结构:快速直接访问内容
- 数据监控与管理:重要数据一目了然
- 可视化访问控制:开箱即用的身份验证/授权管理
- 强大的数据集成能力:可视化使用流编辑器,支持双向数据桥接
- 运行时配置更新:立即生效的热更新
#云原生和 EMQX 运营商
水平扩展和弹性集群是云原生应用程序必须支持的功能。
EMQX Kubernetes Operator (打开新窗口)让您充分利用 EMQX 5.0 的复制节点。您可以使用 Kubernetes 部署部署无状态的 EMQX 节点,然后构建支持大规模 MQTT 连接和消息吞吐量的 EMQX 集群。
#新的网关框架
EMQX 5.0 提出了一个新的扩展网关框架,重构了多协议访问的底层架构,统一了配置格式和管理接口:
- 统一的统计和监测指标:EMQX 5.0 提供了网关/客户端级别的统计指标,例如收发字节数、消息等。
- 独立连接和会话管理:与 EMQX 4.x 不同的是,网关客户端也是在 MQTT 客户端列表下管理的,EMQX 5.0 为每个网关创建了一个独立的网关页面,一个客户端 ID 可以跨网关复用。
- 独立客户端认证:与 EMQX 4.x 网关认证同样在 MQTT 客户端下管理不同,EMQX 5.0 支持为每个网关配置唯一的认证机制。
- 易于扩展,规格清晰:该框架提供了一组标准概念和接口,以便更轻松地自定义网关。
新的网关框架通过统一访问和管理多个协议,进一步提高了 EMQX 的可用性。现在实现第三方协议的客户也可以利用 EMQX 的优势,如数据集成、安全可靠的认证/授权、亿级横向扩展能力等。
#更多功能更新
简化配置
配置文件已更改为简洁易读的HOCON格式,默认包含常用的配置项,以提高可读性和可维护性。emqx.conf
改进的 REST API
提供符合 OpenAPI 3.0 规范的 REST API,以及清晰丰富的 API 文档。
快速故障排除
提供更多诊断工具,例如慢订阅和在线跟踪,以便用户可以快速排查生产中的问题。
结构化日志
还支持更加人性化的结构化日志和JSON格式。错误日志标记为“msg”,以便于查找问题的原因。
灵活的扩展和定制
提供全新的插件架构,用户可以通过这种方式以独立插件包的形式编译、分发和安装自己的扩展插件,自定义和扩展 EMQX 的使用。
操作限制
#背景
如果连接数或数据传输没有限制,用户可能会遇到 MQTT 代理性能下降的情况,例如网络连接或操作响应缓慢、消息延迟延长、消息累积甚至消息丢弃等问题。另一方面,协议限制还指定了使用限制。
因此,EMQX 对部分主要功能指定了以下配额和使用限制。
#参考列表
操作限制可分为:
- 代理资源限制:理论上,没有最大限制。实际限制因服务器规格而异。
- 硬编码或协议限制:EMQX 设置这些限制是为了符合协议或保证性能稳定。在某些项目中,EMQX 将默认设置(如协议中指定的那样)修改为更合理的值。您可以使用我们的配置文件更改设置。
| 描述 | 配额 |
|---|---|
| 客户端连接 | |
| 最大并发连接设备 | 无限 |
| 最大设备连接速率 | 无限 |
| 最大 MQTT 客户端 ID 长度 | 65535 |
| 订阅 | |
| 最大订阅数 | 无限 |
| 最高认购率 | 无限 |
| 按设备订阅 | 无限 |
| 每台设备订阅费率 | 无限 |
| 带宽 | |
| 最大带宽 | 无限 |
| 每设备带宽 | 无限 |
| MQTT 消息 | |
| 消息字节 | 默认 1024KB,最大 256MB |
| 最大 QoS | 2 |
| MQTT Keepalive | |
| 马克西蒙保持活力 | 65535 秒 |
| MQTT 主题 | |
| 主题数 | 无限 |
| 主题级别 | 65535 |
| 主题长度 | 无限 |
| 主题别名数 | 65535 |
| MQTT 保留消息 | |
| 单个邮件大小 | 默认 1204KB,最大 256MB |
| 消息数 | 无限 |
| 邮件总大小 | 无限 |
| MQTT 5.0 | |
| 用户专有数量 | 65535 |
| MQTT 附加组件 | |
| 主题重写规则数 | 30 |
| 自动订阅规则数 | 30 |
| 延迟发布数 | 无限 |
| 延迟最长持续时间 | 4294967 秒 |
| 规则 | |
| 规则数 | 无限 |
| 规则执行超时 | 无限 |
| 单个规则输出的数量 | 无限 |
| 数据桥接 | |
| 数据网桥数量 | 无限 |
| 休息接口 | |
| 最大页面大小 | 10000 |
| 接口密钥数量 | 100 |
| 挡泥板 | |
| 仪表板用户 | 无限 |
安装
本章将引导您完成 EMQX 的基本安装步骤、最低硬件规格以及文件和目录位置,以方便以后的配置和维护工作。
#下载
EMQX 在每个版本中都会发布针对不同操作系统或平台的安装包。您可以点击下面的链接进行下载。
您也可以从我们的GitHub 页面 (打开新窗口). {% endemqxce %}
提示
除了以上部署方式,也欢迎您尝试我们的EMQX 云 (打开新窗口),一个完全托管的物联网 MQTT 服务。你只需要注册一个帐户 (打开新窗口)在启动 MQTT 服务并将您的物联网设备连接到任何云之前,无需基础设施维护。
#支持的操作系统
下表列出了 EMQX 支持的操作系统和版本。
| 操作系统 | 支持的版本 | x86_64/amd64 | 手臂64 |
|---|---|---|---|
| 乌班图 | Ubuntu 18.04 Ubuntu 20.04 Ubuntu 22.04 | 是的 | 是的 |
| Debian | Debian 10 Debian 11 | 是的 | 是的 |
| CentOS/RHEL | CentOS 7 CentOS 8 | 是的 | 是的 |
| 亚马逊 Linux | - | 是的 | 是的 |
| 苹果操作系统 | macOS 11 macOS 12 | 是的 | 是的 |
| 窗户 | - | 是的 | 是的 |
#硬件规格
根据客户端连接数、消息速率、消息大小和启用的功能,EMQX 的最低硬件规格会有所不同。
下面是运行简单 EMQX 功能校验的最低硬件规格,支持 100,000 个客户端连接和每秒 100,000 个消息吞吐量。
| 项目 | 最低配置 | 建议的配置 |
|---|---|---|
| 节点 | 1 | 2 |
| 中央处理器 | 1 核 | 16 核 |
| 记忆 | 512兆字节 | 32 千兆字节 |
| 磁盘空间 | 1 千兆字节 | 50 千兆字节 |
提示
在生产环境中,您可以使用服务器估算 (打开新窗口)计算器,用于计算各种最大连接和消息吞吐量下的建议硬件规格。
#文件和目录
安装完成后,EMQX 会创建一些目录来存储运行和配置文件、数据和日志。下表列出了在不同安装方法下创建的目录及其文件路径:
| 目录 | 描述 | 安装有焦油.gz | 与 RPM/DEB 一起安装 |
|---|---|---|---|
etc | 配置文件 | ./etc | /etc/emqx |
data | 数据库和文件 | ./data | /var/lib/emqx |
log | 日志文件 | ./log | /var/log/emqx |
releases | 启动说明 | ./releases | /usr/lib/emqx/releases |
bin | 可执行文件 | ./bin | /usr/lib/emqx/bin |
lib | Erlang 代码 | ./lib | /usr/lib/emqx/lib |
erts-* | Erlang 运行时 | ./erts-* | /usr/lib/emqx/erts-* |
plugins | 插件 | ./plugins | /usr/lib/emqx/plugins |
提示
- 与压缩软件包一起安装时,该目录相对于安装软件的目录。
- 随 Docker 容器一起安装时,EMQX 安装在目录中。
/opt/emqx - 、 和目录可通过配置文件进行配置。建议将目录装载到高性能磁盘以获得更好的性能。对于属于同一群集的节点,目录的配置应相同。有关集群的更多信息,请参阅集群。
datalogpluginsdatadata
下表介绍了一些目录的文件和子文件夹。
| 目录 | 描述 | 权限 | 文件 |
|---|---|---|---|
| .bin | 可执行文件 | 读 | emqx和:EMQX 的可执行文件。有关详细信息,请参阅基本命令。和:EMQX 管理命令的可执行文件。有关详细信息,请参阅管理 CLI 命令。 emqx.cmdemqx_ctlemqx_ctl.cmd |
| 等 | 配置文件 | 读 | emqx.conf:EMQX 的主配置文件,包含所有常用的配置项。:EMQX 的演示配置文件,包含所有可配置项。 :默认 ACl 规则。 :Erlang 虚拟机的操作参数。 :EMQX SSL 监听器的 X.509 密钥和证书文件,在与外部系统集成时,也可以在 SSL/TLS 连接中使用。 emqx-example-en.confacl.confvm.argscerts/ |
| 数据 | 运行数据 | 写 | authz:存储由 REST API 或仪表板上传的文件授权规则。有关详细信息,请参阅授权 - 文件。:存储由 REST API 或仪表板上传的证书文件。 :存储启动时生成的配置文件,或通过 API 或 CLI 的更改覆盖配置。 :内置数据库存储 EMQX 运行数据,包括告警记录、客户端认证授权数据、仪表盘用户信息等。如果删除该目录,所有这些操作数据都将丢失。 — 可能包含以不同节点命名的子目录,例如 。注意:在节点重命名的情况下,您还应该删除或移除相应的子目录。 — 可以使用命令查询内置数据库。有关详细信息,请参阅 certsconfigsmnesiaemqx@127.0.0.1emqx_ctl mnesia管理命令命令行界面 (打开新窗口).:存储 EMQX 作为热补丁加载的文件。可用于快速修复。 :联机跟踪日志文件。 在生产中,为了数据安全,建议定期备份目录(不包括文件夹)。 patches.beamtracedatatrace |
| .log | 操作日志 | 读 | emqx.log.*:EMQX 的操作日志,更多信息请参见日志。:在后台启动 EMQX 时复制控制台日志的文件 erlang.log.emqx start |
提示
EMQX 将配置信息存储在 和 目录中。该目录存储只读配置文件,而来自仪表板或 REST API 的配置更新保存在目录中,以支持在运行时重新加载热配置。data/configsetcetcdata/configs
etc/emqx.confdata/configs/cluster-override.confdata/configs/local-override.conf
EMQX 会从这些文件读取配置项,并将其转换为 Erlang 原生配置文件格式,以便在运行时应用配置。