2.5 KiB
v4.4.17
增强
-
启用了
Proxy Protocol
的监听器在收到 TCP 端口探测时,不再打印错误日志 emqx/esockd#172。 在此修复之前,如果监听器开启了 Proxy Protocol (listener.tcp.external.proxy_protocol = on
), 并且在 TCP 握手完成之后、收到 ProxyInfo 之前连接就被断开了,会打印下面一行错误日志:[error] supervisor: 'esockd_connection_sup - <0.3265.0>', errorContext: connection_shutdown, reason: {recv_proxy_info_error,tcp_closed}, offender:
次修复之后不再打印任何日志,但仍然可以通过
emqx_ctl listeners
命令来查看错误原因的统计。 -
改进监听器出现文件描述符耗尽错误时的日志 emqx/esockd#173。 之前的日志:
[error] Accept error on 0.0.0.0:1883: emfile
改进之后:
[error] Accept error on 0.0.0.0:1883: EMFILE (Too many open files)
-
提升规则数量较多时规则引擎的执行性能 #10283 在此改动之前,当规则数量比较多的时候,规则引擎的执行会成为瓶颈,规则引擎将耗费大量 CPU 在规则的查询和匹配上。 本次优化中,通过简单地给规则列表添加一个缓存,大幅提升了此场景下的规则执行效率。 在我们的测试中(700多条规则),应用此优化后规则引擎获得了 5 倍左右的性能提升。
修复
-
修复
Erlang distribution
无法使用 TLS 的问题 #9981。 关于Erlang distribution
, 详见 这里。 -
修正了 MQTT 桥接 TLS 连接无法验证对端的带通配符的证书 #10094。
-
修复由于大量 retain 消息导致 EMQX 无法及时清除已掉线的 MQTT 连接信息的问题。#10189。 在此修复之前,
emqx_retainer
插件和 emqx 的连接信息清理过程共用了同一个进程池,所以 如果该进程池被大量的 retain 消息下发任务阻塞时,许多已经掉线的 MQTT 连接将得不到及时清理。 问题详情见 #9409。 在此修复中,我们给emqx_retainer
插件创建了单独的进程池,从而避免了该问题。 -
修复了 Helm Chart 中模板文件路径的错误。#10229