
EMQX Enterprise 5.4.0 版本现已正式发布!
新版本提供 OpenTelemetry 分布式追踪与日志集成功能,新增了开放充电协议 OCPP 协议接入能力,并为数据集成添加了 Confluent 支持。此外,新版本还进行了多项改进以及 BUG 修复,进一步提升了整体性能和稳定性。
OpenTelemetry 分布式追踪与日志集成

分布式追踪(Traces)
日志(Logs)
开放充电协议 OCPP 协议网关
提供 TLS/SSL 加密连接,保障传输层安全
提供用户名/密码、JWT 接入认证
提供上下行消息权限控制能力
提供基于 Dashboard 与 REST API 的客户端管理能力
支持与 MQTT 协议异构结合,满足更加灵活和多样化的应用场景需求
支持通过规则引擎、数据集成以及 REST API 等方式与第三方管理系统(Central System)集成
借助以上特性,用户可以快速构建安全可靠的电动汽车充电基础设施,快速交付并实现有效充电业务管理和运营。
JT/T 808 与 GB/T 32960 协议网关
借助两种车联网专属协议以及标准 MQTT 协议支持,EMQX 能够提供多类数据一体的接入和集成能力,帮助车企与车辆平台快速构建车联网应用,提供更高效、智能化的车辆管理和运营服务。
Confluent 集成支持
Confluent 包含多项服务,例如 Kafka 服务,Schema Registry 与事件流处理工具,以及跨区域的数据复制能力和其他丰富的扩展功能。EMQX 与 Confluent 生态集成,能够为企业提供灵活的物联网实时数据采集、传输、处理和分析全套解决方案,为企业提供更多的洞察和决策支持。
安全增强
通过 Prometheus Pull 模式集成时,支持为用于获取指标的 REST API GET api/v5/prometheus/stats 启用身份验证功能。
配置文件现在支持将敏感配置存储为文件,并通过在配置文件中使用特殊前缀 file:// 来指定文件路径进行加载。
REST API 现在添加了 RBAC 功能,实现更精细安全管理。通过 Dashboard 或密钥初始化文件创建 API 密钥时,可以指定 API 密钥的角色,现有以下角色可供选择:
管理员:可以访问系统中的所有资源。
查看者:只能查看资源和数据,对应 REST API 中的所有 GET 请求。
发布者:专门用于 MQTT 消息发布,只能访问与发布相关的 API。
性能增强的新路由存储架构
新存储架构默认启用,旧版本集群将在滚动升级后也将自动切换到新架构。如果你不想使用新架构,可以通过配置 broker.routing.storage_schema 指定使用旧架构。
其他新增与变更功能
REST API 与 Dashboard 添加了备份与恢复功能,用户可以为集群创建多个数据备份,并在需要的时候恢复。
Dashboard 中添加了审计日志管理页面,用户可以使用该页面查看对 EMQX 设备和数据进行的所有更改操作,例如踢出设备、创建/删除规则等。
Dashboard 单点登录中的 SAML 协议支持与 Azure Entra ID 进行集成。
客户端认证使用 LDAP 作为数据源时支持通过 bind 操作进行验证,适用于已经在 LDAP 服务器上拥有账户数据或缺乏添加或修改数据权限的情况。
调整数据桥接设计,将其拆分为连接器与动作(Sink)。连接用于管理数据集成与外部系统的连接,可以在多个动作之间重复使用,动作仅用于配置数据操作方式。这个设计能够提供更大的灵活性和更好的可扩展性,实现更清晰的数据集成配置与管理。
节点重平衡操作状态 API GET api/v5/load_rebalance/availability_check 取消身份验证,简化了负载均衡器配置。
新增重置 License 功能,允许将现有的 License 设置为默认试用 License。
调整默认试用 License 规格,由 100 连接调整为 25 连接。
BUG 修复
#10976 修复共享订阅中的主题过滤器重复处理问题。在之前的实现中,订阅选项的存储方法没有充分适配共享订阅,这导致在特定的主题和流程下,”订阅-取消订阅” 期间消息路由失败并且节点之间的路由表出现泄漏问题。https://github.com/emqx/emqx/pull/10976
#12048 修复 COAP 网关忽略订阅选项的错误。https://github.com/emqx/emqx/pull/12048
#12158 修复规则引擎无法连接到 Upstash Redis 的问题。修复前,在与 Redis 服务建立 TCP 连接之后,EMQX 的 Redis 驱动程序使用 inline commands 来发送 AUTH 和 SELECT 命令。但 Upstash Redis 服务不支持 inline commands,导致 EMQX 无法连接到 Upstash Redis 服务。修复后,EMQX 的 Redis 驱动使用 RESP (Redis Serialization Protocol) 来发送 AUTH 和 SELECT 命令。https://github.com/emqx/emqx/pull/12158