增强
#10697 此增强功能允许配置 StatefulSet 的
minReadySeconds
,从而允许在升级或重新启动命令触发的每个 pod 重新启动之间引入时间间隔。#11124 发布了适用于 Amazon Linux 2023 的软件包。
#11289 发布了适用于 Debian 12 的软件包。
#11290 更新了
jq
依赖项至版本 0.3.10,其引用的oniguruma
库更新至版本 6.9.8,修复了一些小的安全问题。#11291 通过 ekka 更新至版本 0.15.6,将 RocksDB 版本更新至 1.8.0-emqx-1。
#11390 向 EMQX 配置添加了
node.broker_pool_size
、node.generic_pool_size
和node.channel_cleanup_batch_size
选项。如果集群互连网络延迟较高,调整这些选项可以显著提高性能。#11429 在 MondoDB 连接和桥接中添加了配置检测遗留协议的选项。
#11436 添加了新的 REST API
DELETE /banned
,用于清除所有黑名单数据。#11438 将
mqtt.max_packet_size
的类型从字符串更改为 byteSize,以更好地表示有效的数字范围。仍然支持字符串以确保向后兼容性。#11469 支持在 Redis 认证中指定用户名。
#11496 默认情况下禁用 Erlang VM Prometheus 导出器,以提高性能和安全性。
#11497 通过添加新的消息、过载保护、授权、身份验证指标,改进 OpenTelemetry 的命名一致性,增强了指标可观测性。
#10647 新增了 GreptimeDB 数据集成。
#11261 新增了 Amazon Kinesis Data Streams 生产者数据集成。
#11329 新增了 Azure Event Hub 生产者数据集成。
#11363 为 RabbitMQ 桥接添加了 TLS 连接支持。
#11367 从 EMQX 4.4 迁移了 GCP IoT Hub 认证支持。
#11386 认证器新增了 LDAP 数据源。
#11392 授权管理器新增了 LDAP 数据源。
#11402 Kafka 消费者桥接支持使用占位符动态设置 MQTT 主题。
#11403 添加了支持定义 GCP PubSub 生产者桥接的消息属性和排序键模板。还更新了我们的 HOCON 库,以修复一个问题,即数组中的对象即使位于不同的行上也会被串联在一起。
#11459 添加了配置 Kafka 桥接的健康检查间隔的选项。
#11478 添加了对 HStreamDB 桥接的支持(允许 TCP 和 TLS 连接),并适配了 HStreamDB
v0.16.1
。在 PR#11530 中更新了驱动程序至
0.4.5+v0.16.1
。#11389 通过利用 Mria 0.6.0 中引入的新 API 将多个索引更新操作合并为单个 Mnesia 事务来提高保留消息发布的速度。
#11396 为规则引擎运行时引入了主题索引,提高了消息主题与规则 SQL 中的主题过滤器匹配的速度,避免了对规则集的全面扫描,大幅提升了 EMQX 在处理大量规则时的性能。
#11399 改进了规则引擎中的占位符语法。发布操作支持使用占位符语法动态填充 payload 变量中的内容。 占位符语法的格式为
${key}
。 在此改进之前,${key}
中只能包含字母、数字和下划线。现在,${key}
支持任何 UTF8 字符。#11405 改进了
date_to_unix_ts
的错误原因以便理解。#11490 为各种认证后端添加了未定义密码的快速错误处理。这提高了认证过程的一致性和用户友好性。
修复
- #11065 修复了在 EMQX 关闭过程中防止日志记录无关错误消息的问题。
- #11279 修复了当在 EMQX 启用了 debug/trace 日志记录时客户端无法发送包含大型 payload 消息的问题。
- #11296 添加了从 EMQX 备份文件中使用
emqx ctl import
命令导入附加配置的支持:- rule_engine(以前由于错误而未导入)
- topic_metrics(以前未实现)
- slow_subs(以前未实现)
- #11327 更新了 ekka 到版本 0.15.8,mria 到版本 0.15.8,以及 optvar 到 1.0.5。 这修复了偶发的断言失败问题:
{{badmatch,noproc},[{optvar,read,2,[{file,"optvar.erl"},{line,140}]},{optvar,read,1,[{file,"optvar.erl"},{line,124}]},...
- #11346 更新了 ekka 到版本 0.15.9。 这修复了在获取锁定超时时出现的悬挂的 etcd 锁定问题。
- #11347 确保 OCSP 请求路径正确进行了 URL 编码。
- #11352 修复了在 Windows 或其他不支持 RocksDB 的平台上启动时出现的崩溃问题。
- #11388 增加了
emqx_router_sup
重启强度,以提高对在正常情况下发生偶发崩溃的容忍度,而无需关闭整个 EMQX 应用程序。 例如, 如果核心节点正在停止、重新启动或处于不可用状态,从复制节点委派给emqx_router_helper
的 mria 写入/删除调用可能会失败。修改后的重启强度确保系统保持稳定运行。 - #11424 添加了对 API 中时间戳的最大值的检查,以确保它是有效的 Unix 时间戳。
- #11445 删除了 Windows 平台上的 os_mon 应用程序监控支持,以防止虚拟机崩溃。 该功能仍然适用于非 Windows 平台。
- #11454 修复了在调试/跟踪大型 payload 时出现的崩溃问题(在 #11279 中引入)。
- #11456 移除了对 CA 证书文件强制要求非空 PEM 的验证,允许 CA 证书文件 PEM 为空。
- #11466 修复了将
ssl_options.ciphers
配置选项设置为空字符串("")时出现崩溃的问题。 - #11480 改进了规则引擎中当规则函数接收到错误参数时的错误处理和 SQL 函数测试。
- #11520 修复了在发送带有非零
ack_flag
的 CONNACK 数据包时未增加packets_connack_sent
指标的问题。 - #11523 更正了在为
/configs
API 指定无效证书/密钥时出现的令人误解的提示。 - #11534 修复了当桥接状态不健康时数据桥接统计数据的增量。现在,发送到不健康桥接的消息将被计算为丢弃的消息。
- #11540 在尝试创建具有无效名称的桥接时,改进了 HTTP 响应。
- #11548 修复了在整个集群中更新插件顺序的问题。
- #11366 修复了在使用 EMQX Operator 在
bootstrapConfig
中指定一些桥接配置时可能会阻止 pod 启动的问题。 - #11453 修复了测试 InfluxDB 桥接的连接时可能产生虚假负面结果的问题。
- #11461 将测试桥接连接的超时更加紧密地与配置的健康检查超时保持一致。
- #11492 修复了测试 GreptimeDB 桥接的连接时可能产生虚假负面结果的问题。
- #11508 修复了 Kafka 桥接中将 header 翻译为无效值时的错误处理。
- #11513 修复了一个错误,该错误导致 Kafka 生产者桥接无法使用正确的模板的来处理
timestamp
字段。 - #11527 修复了与 Kafka header 模板处理相关的问题。该问题发生在占位符解析为键值对数组时(例如:
[{"key": "foo", "value": "bar"}]
)。