emqx/changes/v4.4.19-zh.md

2.8 KiB
Raw Permalink Blame History

v4.4.19

增强

  • 为 MQTT/TCP 和 MQTT/SSL 监听器增加 TCP Keep Alive 的支持 #10854

    现在增加了一个配置项:zone.<zone-name>.tcp_keepalive = Idle,Interval,Probes,用户可以通过此配置来启用 TCP 层的 Keep Alive 功能并指定时间参数。此配置仅在 Linux 和 MacOS 系统上生效。

  • 改进 Proxy Protocol 相关的错误日志 emqx/esockd#177

    改进之前的日志样例:

    2023-04-20T14:56:51.671735+08:00 [error] supervisor: 'esockd_connection_sup - <0.2537.0>', errorContext: connection_shutdown, reason: {invalid_proxy_info,<<"f\n">>}, offender: [{pid,<0.3192.0>},{name,connection},{mfargs,{...}}]
    
    2023-04-20T14:57:01.348275+08:00 [error] supervisor: 'esockd_connection_sup - <0.2537.0>', errorContext: connection_shutdown, reason: {proxy_proto_timeout,5000}, offender: [{pid,<0.3194.0>},{name,connection},{mfargs,{...}}]
    

    改进之后:

    2023-04-20T18:07:06.180134+08:00 [error] [esockd_proxy_protocol] The listener 127.0.0.1:8883 is working in proxy protocol mode, but received invalid proxy_protocol header, raw_bytes=<<"f\n">>
    
    2023-04-20T18:10:17.205436+08:00 [error] [esockd_proxy_protocol] The listener 127.0.0.1:8883 is working in proxy protocol mode, but timed out while waiting for proxy_protocol header
    
  • 增加了一个新功能,为 TLS 监听器启用部分证书链验证 #10553

  • 增加了一个新功能,为 TLS 监听器启用客户端证书扩展密钥使用验证 #10669

  • 在 HTTP API /api/v4/nodes 的返回中增加 live_connections 字段 #10859

    此前该接口中有一个 connections 字段,它代表当前节点上会话未过期的连接数量。这意味着即使 MQTT 连接已经断开,只要客户端保持了会话,它仍然会被统计在 connections 中。新增的 live_connections 字段则仅仅统计 MQTT 连接未断开的客户端数量。

修复

  • 修复规则引擎无法在 DO 子句中访问 FOREACH 导出的变量的问题 #10620

    给定消息:{"date": "2023-05-06", "array": ["a"]},以及如下 SQL 语句:

    FOREACH payload.date as date, payload.array as elem
    DO date, elem
    FROM "t/#"
    

    修复前,以上 SQL 语句中 FOREACH 导出的 date 变量无法在 DO 子句中访问,导致以上 SQL 的输出为: [{"elem": "a","date": "undefined"}]。 修复后SQL 的输出为:[{"elem": "a","date": "2023-05-06"}]

  • 修复 WebHook 插件执行 on_client_connack 钩子失败的问题 #10710

    详见 https://github.com/emqx/emqx/issues/10628