emqx/changes/e5.0.1.zh.md

6.3 KiB
Raw Permalink Blame History

e5.0.1

增强

  • #10019 为 QUIC 监听器添加更多底层调优选项。

  • #10059 规则引擎 API 返回用户可读的错误信息而不是原始的栈追踪信息。

  • #9213 在 Helm chart 中添加干扰预算 (disruption budget)。

  • #9949 QUIC 传输多流支持和 QUIC TLS cacert 支持。

  • #9932桥接 中集成 TDengine

  • #9967 新的通用 TLS 选项 'hibernate_after' 以减少空闲连接的内存占用,默认: 5s 。

修复

  • #10009 验证 GET /trace/:name/logbytes 参数使其不超过有符号的32位整数。

  • #10015 在 cookie 给错时,快速失败。 在此修复前,即使 cookie 配置错误emqx 命令仍然会尝试去 ping EMQX 节点, 并得到一个 "Node xxx not responding to pings" 的错误。 修复后,如果发现 cookie 不一致,立即打印不一致的错误信息并退出。

  • #10020 修复使用异步和批量配置的桥接计数不准确的问题。

  • #10021 修正当emqx_ctl cluster join命令的目标节点未运行时的错误信息。

  • #10032 当集群中某些节点上的资源仍处于 '初始化/连接中' 状态时,bridges/ API 将由于缺少这些资源的 Metrics 信息而崩溃。此修复后将忽略没有 Metrics 信息的资源。

  • #10037 修复 Swagger API 文档渲染崩溃。 在版本 5.0.18 中,引入了一个错误,导致配置 schema 中出现了重复的配置名称,进而导致生成了无效的 Swagger spec。

  • #10041 为 influxdb 桥接的配置项 write_syntax 描述文档增加了类型标识符的提醒。 另外在配置中支持 timestamp 使用一个常量。

  • #10042 改进 core 集群被分割时 replicant节点的行为。 修复前,如果 core 集群分裂成两个小集群(例如一个节点离开集群)时,replicant 节点无法重新平衡与核心节点的连接,直到核心集群再次变得完整。 这种个问题会导致 replicant 节点出现如下日志: [error] line: 182, mfa: mria_lb:list_core_nodes/1, msg: mria_lb_core_discovery divergent cluster

    Mria PR

  • #10043 修复 v5.0.18 引入的 2 个bug。

    • 环境变量 SSL_DIST_OPTFILE 的值设置错误导致节点无法为 Erlang distribution 启用 SSL。
    • 当节点的 cookie 从环境变量重载 (而不是设置在配置文件中时),节点无法启动的问题。
  • #10044 修复集群中已停止节点的信息序列化问题,该错误由 v5.0.18 引入。

  • #10054 修复数据桥接中使用 /bridges_probe API 进行测试连接时密码被混淆的问题。

  • #10058 废弃未使用的 QUIC TLS 选项。 QUIC 监听器只保留以下 TLS 选项:

    • cacertfile
    • certfile
    • keyfile
    • verify
  • #10076 修复 HTTP 桥接的一个异常处理:连接超时错误发生后,发生错误的请求可以被重试。 在此修复前,连接超时后,被当作不可重试类型的错误处理,导致请求被丢弃。

  • #10078 修复了无效的 QUIC 监听器设置可能导致 segfault 的问题。

  • #10084 修正将运行不同 EMQX 版本的核心节点加入集群的问题。

    Mria PR

  • #10086 HTTP 客户端库 ehttpc 升级到 0.4.7。 在升级前,如果 HTTP 客户端,例如 认证授权webhook 等配置中使用了content-type HTTP 头,但是没有配置 body则可能会发生异常。 详情见 ehttpc PR#44

  • #9939 允许 'emqx ctl cluster join' 命令在 Mnesia 启动前就可以调用。 在此修复前, EMQX 的 replicant 类型节点无法使用 manual 集群发现策略。

  • #9958 修复 clients API 在 Client ID 不存在时返回的错误的 HTTP 应答格式。

  • #9961 在 bin/emqx 脚本中,避免在运行非启动命令时解析 emqx.conf 来获取节点名称和 cookie。

  • #9974 Statsd 和 prometheus 使用跟 Dashboard 相同的内存用量数据源。 在此修复前,内存的总量和用量统计使用了过时的(在容器环境中不准确)的数据源。

  • #9978 修正了在Postgres连接中选择使用SSL时的配置问题authn, authz 和 bridge。 从5.0.13升级到较新的EMQX版本后连接可能无法完成之前的配置。

  • #9997 修复 Swagger API 生成时,deprecated 元数据字段未按照标准建议的那样始终为布尔值的问题。

  • #10007 Kafka 桥接的配置参数 memory_overload_protection 默认值从 true 改成了 false。 尽管内存过载后消息被丢弃会产生日志和计数,如果没有基于这些日志或计数的告警,系统管理员可能无法及时发现消息被丢弃。 当前更好的选择是:让管理员显式的配置该项,迫使他们理解这个配置的好处以及风险。

  • #10087 在 InfluxDB 中插入数据时,如果时间戳为空(未定义),则使用默认的占位符 ${timestamp}。 在此修复前如果时间戳字段没有设置InfluxDB 桥接使用了一个错误的时间戳。