diff --git a/en_US/changes/changes-ee-4.4.md b/en_US/changes/changes-ee-4.4.md index 901c9230b..5b1477c57 100644 --- a/en_US/changes/changes-ee-4.4.md +++ b/en_US/changes/changes-ee-4.4.md @@ -1,5 +1,63 @@ # Releases +## e4.4.33 + +*Release Date: 2025-10-15* + +## Enhancements + +- Added rate limiting based on Tag. + + Users can now use Tags returned by the HTTP authentication service to categorize clients and apply rate limits based on these categories. + +- Reduced memory consumption of the ACL cache feature. + + Previously, when MQTT message payloads were large, the ACL cache feature consumed significant memory, with usage proportional to the number of MQTT sessions. + +- The username quota module now supports kicking all client connections for a specified username. + +- Improved user experience on the "Usage" page of the username quota module. + + Previously, the "Usage" page automatically sorted usernames by session count, displaying those with the most sessions at the top. However, when there were many usernames, sorting caused long page load times and affected user experience. Now, a sort button has been added to the page, and sorting is only performed when the button is clicked. + +- Reduced system resource consumption of the username quota module during cluster node changes. + + This optimization reduces unnecessary data synchronization operations when the module detects other nodes going offline, thereby lowering system resource usage. + +## Fixes + +- Fixed an issue where SQL multi-row insert syntax could not be used in MySQL and PostgreSQL actions. The following error message would appear in the logs: + + ``` + ... Not an INSERT statement or incorrect SQL syntax + ``` + +- Fixed an issue where the LwM2M module failed to start during rolling upgrades. The following error message would appear in the logs: + + ``` + [error] init_module_failure, module: emqx_module_proto_lwm2m, reason: {badkey,<<"coap_max_block_size">>}, ... + ``` + +- Fixed the default XML path error for the LwM2M module in EMQX environments installed via binary packages. + +- Fixed an issue where cached messages in Kafka Producer could not be sent after Kafka service recovery. The following error message would appear in the logs: + + ``` + [warning] your-kafka-topic replayq_overflow_dropped_number_of_requests 2444 + ``` + +- Fixed an issue where the log tracing feature could become unusable after upgrading EMQX versions due to the loss of the `emqx_trace` remote table. + + In certain upgrade scenarios, users might add a new-version EMQX node to a running cluster that includes older-version nodes, and later remove the old nodes. If an old node is stopped (e.g., using the `emqx stop` command) before being removed via the CLI or API, and if log tracing was previously enabled on that node, the log tracing module on the new node may fail due to missing access to the `emqx_trace` remote table. + + This issue can also cause the `emqx ctl cluster force-leave ` command to fail. + + This fix ensures that the log tracing module automatically restores the `emqx_trace` table during startup. Once the module is initialized, the `force-leave` command will also function correctly. + +- Fixed inaccurate rate limiting. + + Corrected the implementation of the token bucket algorithm in rate limiting. Before the fix, the actual maximum achievable rate was always slightly higher than the configured value. + ## e4.4.32 *Release Date: 2025-07-30* diff --git a/zh_CN/changes/changes-ee-4.4.md b/zh_CN/changes/changes-ee-4.4.md index 96b58e32e..b89dc4873 100644 --- a/zh_CN/changes/changes-ee-4.4.md +++ b/zh_CN/changes/changes-ee-4.4.md @@ -1,5 +1,64 @@ # 版本发布 +## e4.4.33 + +*发布日期: 2025-10-15* + +## 增强 + +- 新增基于 Tag 的速率限制功能。 + + 现在用户可以使用 HTTP 认证服务返回的 Tag 来对客户端进行分类,并根据分类进行速率限制。 + +- 降低 ACL 缓存功能的内存消耗。 + + 此前,当 MQTT 消息的 payload 较大时,ACL 缓存功能会消耗较高的内存,内存的消耗大小与 MQTT 会话数目正相关。 + +- 用户名配额模块支持踢除指定用户名的所有客户端连接。 + +- 优化用户名配额模块的 “使用详情” 页面的用户体验。 + + 此前,用户名配额模块的 “使用详情” 页面在加载时会自动对用户名按照会话数进行排序,会话数最多的用户名会出现在列表的最前面。但是,当用户名数量较多时,排序操作会导致页面加载时间过长,影响用户体验。现在 “使用详情” 页面上增加了一个排序按钮,只有在点击排序按钮时,才会进行排序。 + +- 降低集群节点变化时,用户名配额模块的系统资源消耗。 + + 此优化减少了用户名配额模块在检测到其他节点掉线时的不必要的数据同步操作,从而降低了系统资源消耗。 + +## 修复 + +- 修复了 MySQL,PostgreSQL 动作中无法使用 SQL 多行插入语法的问题。日志中会看到如下错误信息: + + ``` + ... Not an INSERT statement or incorrect SQL syntax + ``` + +- 修复了l滚动升级过程中,LwM2M 模块启动失败的问题。日志中会看到如下错误信息: + + ``` + [error] init_module_failure, module: emqx_module_proto_lwm2m, reason: {badkey,<<"coap_max_block_size">>}, ... + ``` + +- 修复了使用二进制包安装的 EMQX 环境中,LwM2M 模块的默认 XML 路径错误的问题。 + +- 修复了在 Kafka 服务故障恢复之后,Kafka Producer 缓存的消息无法继续发送的问题。日志中会看到如下错误信息: + + ``` + [warning] your-kafka-topic replayq_overflow_dropped_number_of_requests 2444 + ``` + +- 修复了升级 EMQX 版本之后,日志追踪功能可能因为丢失 `emqx_trace` 远程表而无法使用的问题。 + + 在某些升级场景中,用户可能会先将新版本的 EMQX 节点加入到运行中的旧版本集群中,然后再移除旧节点。 + 如果用户在通过 CLI 或 API 移除旧节点之前,先通过 `emqx stop` 命令或其他方式手动停止了旧版本节点,且该节点曾启用过日志追踪功能,则新版本节点上的日志追踪模块可能因无法访问 `emqx_trace` 远程表而发生异常。 + + 此外,该问题还可能导致 `emqx ctl cluster force-leave ` 命令无法正常执行。 + + 修复后,日志追踪模块会在启动时修复 `emqx_trace` 表,同时 `force-leave` 命令不可用的问题也会在日志追踪模块启动后得到解决。 + +- 修复了速率限制不精准的问题。 + + 修复了速率限制中令牌桶算法的实现错误。修复前,实际能达到的最大速率总是略大于给定配置。 + ## e4.4.32 *发布日期: 2025-07-30*