11 KiB
e5.0.3
优化
-
#10128 SSL MQTT监听器增加对 OCSP Stapling 的支持。
-
#10156 调整配置文件覆盖顺序机制
对于新安装的 EMQX,emqx.conf 和环境变量中的配置会覆盖 API 传入的配置(即
cluster.hocon
中的配置)对于从旧版本升级的 EMQX(即
data
文件夹中包含cluster-override.conf
文件),保留之前的覆盖规则, 即cluster-override.conf
中的配置会覆盖emqx.conf
和环境变量的配置。
注意:data/configs/cluster-override.conf
已弃用。升级后,建议您在 emqx.conf
中重新配置之前被 cluster-override.conf
覆盖的配置项,并将 cluster-override.conf 中的配置迁移到 cluster.hocon
中。
升级后,EMQX将像以前一样继续读取 local-override.conf
(如果存在的话),但建议您将配置合并到 emqx.conf
中。
-
#10164 TLS MQTT 监听器增加对 CRL 检查的支持。
-
#10207 提高 OpenAPI (swagger) 文档的可读性。 在此更改之前,文档中有一些
Summary
字段冗长且缺乏翻译,现在使用了 i18n 数据库中更简洁的label
字段。 -
#10210 解决停止/重启 Mria 时 Mnesia callback 可能出现的问题。优化后,当 Mria 被停止前会取消 Mnesia callback 的注册。详情见 Mria PR
-
#10224 在 Helm 图表中增加自定义
clusterIP
选项,用户可以将其设置为固定 IP。 -
#10263 添加用于评估 Elixir 表达式的命令
eval-ex
。 -
#10278 重构所有网关的目录结构。
-
#10206 所有数据桥接支持异步查询模式。
优化前,如将某项资源(如数据桥接)的查询模式设为 sync(同步模式),缓存将以同步的模式调用底层连接器,即使它支持异步调用。
-
#10306 大多数数据桥接支持 async 查询模式。 这是 #10206 的后续优化, 优化前,Cassandra、MongoDB、MySQL、Postgres、Redis、RocketMQ、TDengine 等数据桥接只支持同步查询模式。
-
#10318 规则引擎中的 FROM 语句新增支持由引号(')包裹的字符串。
-
#10336 添加 API Endpoint
/rule_engine
,用以管理规则引擎的配置。 -
#10354 优化
max_heap_size
配置错误时的报错信息。当发生message_queue_too_long
报错时,会在日志文件中记录当前值和最大值。 -
#10358 隐藏
flapping_detect/conn_congestion/stats
配置。弃用flapping_detect.enable
配置项。 -
#10359 通过独立的 RPC 收集针对集群级别的指标,不再隐式收集不被 API 调用的指标。
-
#10373 废弃
trace.payload_encode
配置项。可以在通过 HTTP API 创建的日志追踪时使用trace.payload_encode = [text, hidden, hex]
字段替代。 -
#10381 隐藏
auto_subscribe
配置项,后续将只能通过 HTTP API 来修改自动订阅规则。 -
#10391 简化配置文件并隐藏大量的配置项,包括
rewrite
、topic_metric
、persistent_session_store
、overload_protection
、flapping_detect
、conn_congestion
、stats
、auto_subscribe
、broker_perf
、shared_subscription_group
、slow_subs
、ssl_options.user_lookup_fun
、node
和dashboard
相关的部分高级配置项,#10358, #10381, #10385。 -
#10404 将缓冲区工作线程的默认队列模式更改为
memory_only
。在此优化前,默认队列模式为volatile_offload
,当消息速率很高,资源无法满足该需求时,缓冲区性能会由于频繁的磁盘操作而受影响。 -
#10140 新增 Cassandra 数据桥接,目前仅支持 Cassandra 3.x 版本,暂不支持 4.x 版本。
-
#10143 新增 RocketMQ 数据桥接。
-
#10165 InfluxDB 数据桥接中的
write_syntax
中支持转义特殊字符。优化后,用户可根据 InfluxDB Line Protocol 在字符串中使用经转义的特殊字符。 -
#10211 隐藏
broker.broker_perf
配置和相关 API 文档。其中的两个配置项route_lock_type
和trie_compaction
很少使用,而且需要重新启动整个集群才能生效,不必要暴露给用户。更多信息可阅读:https://gist.github.com/zmstone/01ad5754b9beaeaf3f5b86d14d49a0b7/revisions 。 -
#10294 配置 MongoDB 数据桥接时,现支持通过占位符
${field}
语法来引用消息中的字段,从而动态地选择要插入的数据集合。 -
#10363 新增 Microsoft SQL Server 数桥接。
-
#10573 提升了 WebHook 在同步请求模式下的性能表现,以及其他数据桥接在未配置批处理时的性能表现。
修复
-
#10145 在针对
GET /bridges/:id
的API 调用响应中,如桥接的状态为断开,且内部健康检查返回错误,添加status_reason
字段说明错误原因。在相应的告警信息中,同样增加status_reason
字段说明断开原因。 -
#10172 修复默认ACL规则中不正确的正则表达式,从而允许 dashboard 用户名订阅
$SYS/#
主题 -
#10174 将库
esockd
从 5.9.4 升级至 5.9.6。如连接在代理发送代理协议头之前关闭,将不再产生的一条错误级别日志。 -
#10195 对包含 HTML 的 API Schema 添加标签,解决之前会破坏生成文档格式的问题。
-
#10196 针对用于生成在线文档菜单中的模式摘要和描述,使用小写字母。
-
#10209 修复在断开禁用客户端时,此类客户端仍可发布遗嘱消息的错误。
-
#10225 对于名称与已安装的插件开头相同的插件,用户仍可继续安装。例如:如果插件
emqx_plugin_template_a
已安装,用户仍可安装名为emqx_plugin_template
的插件。 -
#10226 在
/bridges
API 验证错误时,返回400
而非500
。 -
#10242 修复日志中数据字段名称冲突。修复前,一些调试日志可能会报告错误的 Erlang PID,影响解决会话接管类问题。
-
#10257 修复 LwM2M 网关中
auto_observe
无法正常工作的问题。修复前,在发送
OBSERVE
请求时没有发送 token,导致 LwM2M 网关无法处理客户端请求。修复后,LwM2M 网关可以正确观察到客户端携带的资源列表,此外,未知资源将被忽并打印以下警告日志:
2023-03-28T18:50:27.771123+08:00 [warning] msg: ignore_observer_resource, mfa: emqx_lwm2m_session:observe_object_list/3, line: 522, peername: 127.0.0.1:56830, clientid: testlwm2mclient, object_id: 31024, reason: no_xml_definition
-
#10286 优化 EMQX 启动失败时的日志记录行为。当 EMQX 由于配置文件破坏无法启动时,不会再产生过多的日志记录,也不会再产生崩溃转储文件。
-
#10297 通过仅评估 Erlang 表达式实现
eval
命令与 v4 版本的向后兼容,该更新同样适用于 Elixir 节点。对于 Elixir 表达式,请使用eval-ex
命令。 -
#10300 针对通过 Elixir 构建的项目,修复无法通过环境变量配置插件的问题。
-
#10315 修复在
/mqtt/delayed/messages
API 调用中,在检查limit
和page
参数时的崩溃问题。 -
#10317 在经过充分验证前,隐藏监听器级别的认证信息。
-
#10323 出于安全原因,API 示例中
password
字段的值被替换为******
。 -
#10410 针对由
emqx.conf
配置的网关,修复配置检查失败问题。 此问题最早在 v5.0.22版本中由 #10278引入,启动时缺少配置检查。 -
#10533 修复可能导致日志中的出现无害的噪音的问题。
在对数据桥接进行同步调用时,一些迟到的回复可能会发送到不再期待回复的连接进程,导致产生错误日志,如:
2023-04-19T18:24:35.350233+00:00 [error] msg: unexpected_info, mfa: emqx_channel:handle_info/2, line: 1278, peername: 172.22.0.1:36384, clientid: caribdis_bench_sub_1137967633_4788, info: {#Ref<0.408802983.1941504010.189402>,{ok,200,[{<<"cache-control">>,<<"max-age=0, ...">>}}
这些日志是无害的,但它们可能会泛滥成灾,引起用户不必要的担心。
-
#10449 在通过 HTTP 服务(
authn_http
)创建身份验证时,将进行ssl_options
和header
配置验证。在此修复前,用户通过错误的 ssl 配置也可成功创建身份验证,但该验证整体不生效。 -
#10548 修复了 HTTP 驱动程序在竞争条件下会导致错误而不去重试的问题。 相关的驱动程序修复:emqx/ehttpc#45
-
#10201 在 TDengine 数据桥接中,移除 SQL 模板中冗余的数据库名称。
-
#10270 在创建 ClickHouse 数据桥接时,优化用户点击测试按钮时的错误信息
-
#10324 针对配置有误的 ClickHouse 数据桥接,当用户尝试通过 Dashboard 重连时,将收到报错。修复前,用户不会收到报错。
-
#10438 修复 DynamoDB 数据桥接中的部分术语使用错误:
- 将
database
修改为table
- 将
username
修改为aws_access_key_id
- 将
password
修改为aws_secret_access_key
- 将