emqx/changes/v5.0.21.zh.md

6.7 KiB
Raw Permalink Blame History

v5.0.21

增强

  • #10022 开始发布Rocky Linux 9与Enterprise Linux 9兼容和 MacOS 12 软件包。

  • #10139extraVolumeMounts 添加到 EMQX Helm Chart 中,它将能够挂载用户自己的文件到 EMQX 实例中,例如在 #9052 中提到的 ACL 规则文件。 修复了 issue #10116

  • #9893 当使用 clean_start=false 标志连接时EMQX 将会从消息队列中过滤出被封禁客户端发出的消息,使它们不能被下发给订阅者。 此前被封禁客户端发出的消息仍可能在这一场景下被下发给订阅者。

  • #9986 在 helm chart 中新增了 MQTT 桥接 ingress 的配置参数;并删除了旧版本遗留的 mgmt 配置。

  • #10123 改进 /bridges API 的性能。 此前,当集群中节点数目较多或节点忙时,该 API 可能出现请求超时的情况。

  • #9998 出于安全原因,在身份验证错误日志中模糊 HTTP 请求正文。

修复

  • #10013 修复 API /gateways/:name/clients 返回值的类型结构错误。

  • #10014 如果 API 查询的节点不存在,将会返回 404 而不再是 400。

  • #10026 现在只有显式调用 /bridges/:id/metrics 接口时才可以获得指标数据,而其他 API 接口将不再返回相关数据。

  • #10027 在 docker 中启动时,允许使用 EMQX_NODE__NAME 环境变量来配置节点名。 在此修复前,只能使 EMQX_NODE_NAME

  • #10050 确保 Bridge API 对不存在的资源一致返回 404 状态代码。

  • #10052 优化 EMQX daemon 模式启动启动失败的日志。

    在进行此更改之前,当 EMQX 用 start 命令启动失败时,用户很难理解出错的原因。 所知道的仅仅是节点未能在预期时间内启动,然后被指示以 console 式引导节点以获取一些日志。 然而,节点实际上可能正在运行,这可能会导致 console 模式因不同的原因而失败。

    此次修复后,启动脚本会发出诊断:

    • 如果无法从 ps -ef 中找到节点,则指示用户在 erlang.log.* 中查找信息。
    • 如果发现节点正在运行但不响应 ping则建议用户检查节点主机名是否有效并可达。
    • 如果节点响应 ping 但 EMQX 应用程序未运行则很可能是一个错误。在这种情况下建议用户报告一个Github issue。
  • #10055 修复配置项 mqtt.max_awaiting_rel 更新不生效问题。

  • #10056 修复 /bridges API 的 HTTP 状态码。

    • 当删除被活动中的规则依赖的数据桥接时,将返回 400 而不是 403
    • 当数据桥接未启用时,调用操作(启动|停止|重启)将返回 400 而不是 403
  • #10066 改进 /briges_probe[/node/:node]/bridges/:id/:operation API 调用的错误信息,使之更加易读。并将 HTTP 状态代码设置为 400 而不是 500

  • #10074 检查 PUT /authorization/sources/:type 中的类型是否与请求正文中的 type 相符。

  • #10079 修正对 shared_subscription_strategy 的描述。

  • #10085 如果向 /authorization/sources/:source[/*] 请求的 source 不存在,将一致地返回 404

  • #10098 当 MongoDB 授权模块查询数据库时,在日志文件中发生的崩溃与错误已经被修复。

  • #10100 修复响应较慢的客户端在使用增强认证时可能出现崩溃的问题。 此前,当客户端使用增强认证功能,但发送 Auth 报文较慢或 Auth 报文丢失时会导致客户端进程崩溃。

  • #10107 现在对桥接的 API 进行调用时,如果 bridge-id 不存在,将会返回 404,而不再是400。 然后,还修复了这种情况下,在节点级别上进行 API 调用时,可能导致崩溃的问题。 另外,在启动某个桥接时,会先检查指定桥接是否已启用。 受影响的接口有:

    • [cluster] /bridges/:id/:operation,
    • [node] /nodes/:node/bridges/:id/:operation, 其中 operation[start|stop|restart] 之一。 此外对于节点操作EMQX 将检查节点是否存在于集群中,如果不在,则会返回404,而不再是501
  • #10117 修复节点加入集群时,由于缺少集其它节点已安装的插件所导致的错误。 在此修复后,加入集群的节点将从其它节点复制所有必须的插件。

  • #10118 修复 replicant 节点因为手动加入 EMQX 集群导致的相关问题。 此前,手动执行 加入集群-离开集群 后,replicant 节点再次加入集群后只有重启节点才能正常运行。

    Mria PR

  • #10119 修复 statsd.server 配置为空字符串时启动崩溃的问题。

  • #10124 增加了 MongoDB 的默认心跳周期,以减少 MongoDB 日志文件记录过多的风险。

  • #10130 修复通过环境变量配置启动的 EMQX 节点无法通过HTTP API获取到正确的配置信息。 比如:EMQX_STATSD__SERVER='127.0.0.1:8124' ./bin/emqx start 后通过 Dashboard看到的 Statsd 配置信息是乱码。 相关 PR: HOCON:234.

  • #10132 修复 systemctl stop emqx 命令没有正常停止 jq、os_mon 组件所产生一些错误日志。

  • #10144 为 emqx 可执行文件加入 -setcookie 标志,以避免由于 home 目录只读,导致 emqx cli 所提供的 emqx ctl 等命令在执行时出现的一些问题。修复 #10142

  • #10157 修复在创建新的监听器时,没有正确应用速率限制默认配置的问题。