Webinar

EMQ「技术之夏」直播季火热来袭!| 立即报名

enterprise 5.0.1 更新日志

增强

  • #10019 为 QUIC 监听器添加更多底层调优选项。
  • #10059 规则引擎 API 在出错时返回用户可读的错误信息而不是原始的异常堆栈信息。
  • #9213 在 Helm Chart 中支持 PodDisruptionBudget。
  • #9949 QUIC 支持多流传输与 TLS。
  • #9932 添加 TDengine 数据桥接。
  • #9967 新增 TLS 配置项 hibernate_after,通过在闲置一段时间后休眠 TLS 进程以减少其内存占用,默认: 5s 。

修复

  • #10009 GET /trace/:name/log API 添加 bytes 参数校验,长度不超过 32 位有符号整数。
  • #10015 执行 CLI 时,如果节点 cookie 配置错误则快速抛出错误。 在此修复前,即使 cookie 配置错误,EMQX 命令仍然会尝试去 ping EMQX 节点, 并得到一个 'Node xxx not responding to pings' 的错误。 修复后,如果发现 cookie 不一致,立即打印不一致的错误信息并退出。
  • #10020 修复使用异步和批量配置的桥接计数不准确的问题。
  • #10021 修正执行emqx_ctl cluster join命令时,目标节点未运行时的错误信息。
  • #10032 当集群中某些节点上的资源仍处于 初始化/连接中 状态时,调用 /bridges API 获取 metrics 时将因为没有 metrics 数据而崩溃,此修复将忽略没有 metrics 数据的资源。
  • #10041 为 InfluxDB 桥接配置项 write_syntax 描述文档添加了整数占位符注释说明。 另外在配置中支持 timestamp 使用一个常量。
  • #10042 当 core 节点离开集群时,改进 replicant 节点的行为。 以前,直到所有 core 节点全部起来前, replicant 节点无法重新平衡与 core 节点的连接。 该情况会打印以下日志: [error] line: 182, mfa: mria_lb:list_core_nodes/1, msg: mria_lb_core_discovery divergent cluster
  • #10054 修复了对于已有的Data Bridge进行测试连接时需要手工输入一遍密码的问题。
  • #10058 优化未使用的 QUIC TLS 选项。 QUIC 监听器只保留以下 TLS 选项:
    • cacertfile
    • certfile
    • keyfile
    • verify
  • #10076 修复 Webhook 桥接的一个异常处理:连接超时错误发生后,发生错误的请求可以被重试。 在此修复前,连接超时后,被当作不可重试类型的错误处理,导致请求被丢弃。
  • #10078 修复了无效的 QUIC 监听器设置可能导致 segfault 的问题。
  • #10084 修正将运行不同 EMQX 版本的core节点加入集群的问题。
  • #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 不存在时返回的错误码和错误提示。
  • #9961 在 bin/emqx 脚本中,避免在运行非启动命令时解析 emqx.conf 来获取节点名称和 cookie。
  • #9974 Statsd 和 prometheus 使用跟 Dashboard 相同的内存用量数据源。 在此修复前,内存的总量和用量统计使用了过时的(在容器环境中不准确)的数据源。
  • #9997 修复生成 Swagger API 时没有遵循标准将元数据字段 deprecated 设置为布尔值的问题。
  • #10007 Kafka 桥接的配置参数 memory_overload_protection 默认值从 true 改成了 false。 尽管内存过载后消息被丢弃会产生日志和计数,如果没有基于这些日志或计数的告警,系统管理员可能无法及时发现消息被丢弃。 当前更好的选择是:让管理员显式的配置该项,迫使他们理解这个配置的好处以及风险。
  • #10087 往 InfluxDB 中插入数据时,如果时间戳为空(未定义),则使用默认的占位符 ${timestamp}。 在此修复前,如果时间戳字段没有设置,InfluxDB 桥接使用了一个错误的时间戳。