Skip to content

EMQX 6.0 中的不兼容变更

6.1.0

  • #16368 内部正则表达式引擎已升级为 PCRE2,带来了更高的匹配性能以及更严格的语法校验。

    如果你在规则引擎 SQL 中使用了 regex_matchregex_replaceregex_extract 函数,一些依赖于宽松或未定义行为的现有正则表达式,可能无法再成功编译或按预期进行匹配。

    需要注意的关键变化包括:

    • 更严格的转义规则:此前被忽略的无效或不必要的转义序列,现在会被视为错误。
      • 不再支持[\w-\.],在字符类中对 . 进行转义是不必要的,现已不被接受;只有元字符才需要转义。
      • 不再支持:缺少有效十六进制数字的 \x(例如 \xGG),现在会导致编译错误,而不再被解释为字面量 x
    • 更严格的分组名称校验:正则表达式中不再允许使用重复或为空的命名捕获分组。

    需要采取的行动: 请检查并验证所有使用正则表达式的规则引擎 SQL 定义。对于复杂的正则模式,建议使用符合 PCRE2 规范的测试工具进行验证(大多数在线正则测试工具均支持 PCRE2),或在升级前于预发布 / 测试环境中进行充分测试。

6.0.1

  • #16061 修复了一个问题:RocketMQ 动作忽略了配置的 payload 模板,错误地发送了整个规则的输出结果。

    如果您依赖了此前(错误)行为,可能需要更新 payload 模板,以确保消息格式符合预期。