版本发布
4.3.1 版本
发布日期: 2021-05-14
EMQ X 4.3.1 现已发布,主要包含以下改动:
emqx
错误修复:
修复路由压缩之后性能消耗随主题层级数量指数级增长的问题
Github PR: emqx#4800 (opens new window)
修复处理大报文的性能问题
Github Issue: emqx#4787 (opens new window) Github PR: emqx#4802 (opens new window)
修复新增的共享订阅策略不可用的问题
Github Issue: emqx#4808 (opens new window) Github PR: emqx#4809 (opens new window)
修复了保留消息和延迟发布消息统计指标的错误实现
Github PR: emqx#4778 (opens new window), emqx#4778 (opens new window)
确保 JSON 日志之间的换行
Github PR: emqx#4778 (opens new window)
4.3.0 版本
发布日期: 2021-05-06
EMQ X 4.3.0 现已发布,主要包含以下改动:
功能与改进
构建
- 支持 Erlang/OTP 23
- 新安装包仅支持 macOS 10.14 及以上版本
- 项目调整为 umbrella 结构
- 支持使用 Elixir 编译插件
性能改进
- 多语言扩展功能底层实现方式由 erlport 改为 gRPC
- 支持路由表压缩,减少内存占用,增强订阅性能,发布性能会略受影响,因此提供了关闭选项
- 优化通配符订阅性能
- 改进大量客户端离线时的处理性能
安全性
- 保护 EMQ X Broker 免受跨站点 WebSocket 劫持攻击
- SSL 支持
verify
与server_name_indication
配置项 - SSL 支持证书链最大长度以及私钥文件密码配置项
- JWT 认证支持 JWKS
其他
- 规则引擎新增更新资源逻辑
- 规则引擎 SQL 函数支持 unix 时间戳与 rfc3339 格式时间之间的转换
- 保持对 EMQ X Broker 启动后连接失败的资源进行重试
- Websocket 监听器支持从 subprotocols 列表中选择支持的 subprotocol
- WebSocket 连接支持获取真实 IP 与 Port
- 支持 MySQL 8.0 的默认认证方法 caching_sha2_password
- 共享订阅分发策略配置为
round_robin
时随机选择起始点 - 共享订阅支持按源主题的 Hash 分发消息
- 支持 Mnesia 认证信息的导入导出
- 允许使用 Base64 编码的客户端证书或者客户端证书的 MD5 值作为用户名或者 Client ID
- 支持重启监听器
- 仅在正式版本中启用数据遥测功能
- 支持清除所有 ACL 缓存
- 支持 observer_cli
- Prometheus 支持集群指标
- Redis 哨兵模式支持 SSL 连接
- 支持单行日志输出,并支持 rfc3339 时间格式
emqx_auth_clientid
与emqx_auth_usernmae
合并为emqx_auth_mnesia
。请参考 文档 (opens new window) 将数据到旧版本导出,并导入到 4.3 中- Docker 默认输出日志到控制台,设置 EMQX_LOG__TO=file 使日志输出到文件
- 支持输出 Json 格式的日志
- 支持 IPv6 自动探测
- 所有发行版都支持环境变量覆盖配置文件(以前仅适用于 Docker)
- 开源版支持 Dashboard 上传证书文件(以前仅适用于企业版)
错误修复
MQTT 协议
- 修复 MQTTT 心跳报文的处理
- 修复 MQTT 报文接收计数问题
- 限制飞行窗口的最大长度为 65535
- 修复 Server Keep Alive 生效情况下 Dashboard 中 Keep Alive 字段的值未同步的问题
网关
- 修复 CoAP 连接中 ACL 配置不生效的问题
- 修复使用相同 ClientID 的 CoAP 客户端可以同时接入的问题
- 修复 MQTT-SN 睡眠模式不可用的问题
- 修复 MQTT-SN 网关在睡眠模式下会丢弃 DISCONNECT 报文的问题
- 修复 LwM2M 网关将数字编码、解码为无符号整型的问题
资源
- 修复 MySQL 认证 SSL/TLS 连接功能不可用的问题
- 修复 Redis 重连失败问题
其他修复
- 修复 ekka_locker 在极端条件下内存可能无限增长的问题
- 修复 MQTT 桥接功能中
max_inflight_size
配置项不生效的问题 - 修复 MQTT 桥接飞行窗口的问题
- 修复 MQTT 桥接功能中指标统计错误和
retry_interval
字段进行了多次单位转换的问题 - 修复告警持续时间计算错误的问题
- 修复过长的 Client ID 无法追踪的问题
- 修复查询客户端信息可能出现崩溃的问题
- 修复主题重写与 ACL 在发布订阅时执行顺序不一致的问题
- 修复 WebSocket 连接无法使用对端证书作为用户名的问题
- 修复认证数据无法导入的问题
- 修复 Docker 中 EMQ X 可能启动失败的问题
- OOM 时快速杀死连接进程
- 修复 Clean Session 为 false 的 MQTT-SN 连接在非正常断开时没有发布遗嘱消息的问题
4.3-rc.5 版本
发布日期: 2021-04-26
EMQ X 4.3-rc.5 现已发布,主要包含以下改动:
emqx
功能增强:
优化通配符订阅性能
Github Issue: emqx#2985 (opens new window) Github PR: emqx#4645 (opens new window)
支持单行日志输出,并支持 rfc3339 时间格式
Github PR: emqx#4656 (opens new window)
支持路由表压缩,减少内存占用,增强订阅性能,发布性能会略受影响,因此提供了关闭选项
Github PR: emqx#4628 (opens new window)
规则引擎 SQL 函数支持 unix 时间戳与 rfc3339 格式时间之间的转换
Github PR: emqx#4639 (opens new window)
错误修复:
修复 Docker 中 EMQ X 可能启动失败的问题
Github PR: emqx#4670 (opens new window), emqx#4675 (opens new window), emqx#4657 (opens new window)
规则引擎资源未初始化成功时将相应规则状态设为不可用
Github Issue: emqx#4642 (opens new window) Github PR: emqx#4643 (opens new window)
修复在 EMQ X 未完全启动时上报遥测数据导致的问题
Github PR: emqx#4627 (opens new window)
修复启动 emqx-exhook 插件必须配置 HTTPS 证书的问题
Github PR: emqx#4678 (opens new window)
4.3-rc.4 版本
发布日期: 2021-04-16
EMQ X 4.3-rc.4 现已发布,主要包含以下改动:
emqx
功能增强:
Redis 哨兵模式支持 SSL 连接
Github PR: emqx#4553 (opens new window)
WebSocket 连接支持获取真实 IP 与 Port
Github PR: emqx#4558 (opens new window)
Prometheus 支持集群指标
Github Issue: emqx#4548 (opens new window) Github PR: emqx#4572 (opens new window)
错误修复:
修复 MQTT 桥接飞行窗口的问题
Github Issue: emqx#3629 (opens new window) Github PR: emqx#4513 (opens new window), emqx#4526 (opens new window)
修复多语言扩展钩子无法处理返回的 false 值的问题
Github PR: emqx#4542 (opens new window)
默认启动模块,避免集群后内置模块无法正常工作
Github PR: emqx#4547 (opens new window)
修复认证数据无法导入的问题
Github PR: emqx#4582 (opens new window), emqx#4528 (opens new window)
修复 WebSocket 连接无法使用对端证书作为用户名的问题
Github PR: emqx#4563 (opens new window)
修复 MQTT-SN 网关在睡眠模式下会丢弃 DISCONNECT 报文的问题
Github Issue: emqx#4506 (opens new window) Github PR: emqx#4515 (opens new window)
修复 LwM2M 网关将数字编码、解码为无符号整型的问题
Github Issue: emqx#4499 (opens new window) Github PR: emqx#4500 (opens new window)
修复部分 HTTP API 不可用的问题
Github Issue: emqx#4472 (opens new window) Github PR: emqx#4503 (opens new window)
4.3-rc.3 版本
发布日期: 2021-03-30
EMQ X 4.3-rc.3 现已发布,主要包含以下改动:
emqx
错误修复:
限制飞行窗口的最大长度为 65535
Github PR: emqx#4436 (opens new window)
修复 Server Keep Alive 生效情况下 Dashboard 中 Keep Alive 字段的值未同步的问题
Github PR: emqx#4444 (opens new window)
OOM 时快速杀死连接进程
Github PR: emqx#4451 (opens new window)
修复
emqx start
报超时但服务实际已启动的问题Github PR: emqx#4449 (opens new window)
修复 MQTT-SN 睡眠模式不可用的问题
Github PR: emqx#4435 (opens new window)
4.3-rc.2 版本
发布日期: 2021-03-26
EMQ X 4.3-rc.2 现已发布,主要包含以下改动:
emqx
错误修复:
修复 emqx 和 emqx_ctl 命令在某些情况下不可用的问题
Github PR: emqx#4430 (opens new window)
4.3-rc.1 版本
发布日期: 2021-03-23
EMQ X 4.3-rc.1 现已发布,主要包含以下改动:
emqx
功能增强:
支持 observer_cli
Github PR: emqx#4323 (opens new window)
支持清除所有 ACL 缓存
Github PR: emqx#4361 (opens new window)
SSL 支持
verify
与server_name_indication
配置项Github PR: emqx#4349 (opens new window)
错误修复:
修复主题重写与 ACL 执行顺序导致的问题
Github Issue: emqx#4200 (opens new window) Github PR: emqx#4331 (opens new window)
修复 MQTT 报文接收计数问题
Github PR: emqx#4371 (opens new window)
修复心跳报文的处理
Github Issue: emqx#4370 (opens new window) Github PR: emqx#4371 (opens new window)
修复由于默认的 SSL Ciphers 中包含了 OTP 22 不支持的 Ciphers 导致使用 OTP 22 编译后启动失败的问题
Github PR: emqx#4377 (opens new window)
4.3-beta.1 版本
发布日期: 2021-03-03
EMQ X 4.3-beta.1 现已发布,主要包含以下改动:
emqx
功能增强:
减少开启规则引擎插件时的性能损耗
Github PR: emqx#4160 (opens new window)
仅在正式版本中启用数据遥测功能
Github PR: emqx#4163 (opens new window)
支持重启监听器
Github PR: emqx#4188 (opens new window), emqx#4190 (opens new window)
禁用规则的同时销毁动作占用的资源
Github PR: emqx#4232 (opens new window)
共享订阅分发策略配置为
round_robin
时随机选择起始点Github PR: emqx#4232 (opens new window)
允许使用 Base64 编码的客户端证书或者客户端证书的 MD5 值作为用户名或者 Client ID
Github PR: emqx#4194 (opens new window)
保持对 EMQ X Broker 启动后连接失败的资源进行重试
Github PR: emqx#4125 (opens new window)
错误修复:
修复过长的 Client ID 无法追踪的问题
Github PR: emqx#4163 (opens new window)
修复查询客户端信息可能出现崩溃的问题
Github PR: emqx#4124 (opens new window)
4.3-alpha.1 版本
发布日期: 2021-01-29
EMQ X 4.3-alpha.1 现已发布,主要包含以下改动:
功能
- 支持 Erlang/OTP 23
- 新安装包仅支持 macOS 10.14 及以上版本
- 规则引擎新增更新资源逻辑
- 增强 Webhook 与 HTTP 认证性能
- 多语言扩展功能底层实现方式由 erlport 改为 gRPC
- 保护 EMQ X Broker 免受跨站点 WebSocket 劫持攻击
- 项目调整为 umbrella 结构
- 解决集群环境下节点必须按首次启动顺序启动,否则需要等待前置节点启动的问题
- Websocket 监听器支持从 subprotocols 列表中选择支持的 subprotocol
- 支持 MySQL 8.0 的默认认证方法 caching_sha2_password
- JWT 认证支持 JWKS
- 支持配置证书链最大长度以及私钥文件密码
- 支持 Mnesia 认证信息的导入导出
- 共享订阅支持按源主题的 Hash 分发消息
BUG
- 修复 ekka_locker 在极端条件下内存可能无限增长的问题
- 修复 MQTT 桥接功能中
max_inflight_size
配置项不生效的问题 - 修复 CoAP 连接中 ACL 配置不生效的问题
- 修复使用相同 ClientID 的 CoAP 客户端可以同时接入的问题
- 修复告警持续时间计算错误的问题
- 修复 MySQL 认证 SSL/TLS 连接功能不可用的问题
- 修复 MQTT 桥接功能中指标统计错误和
retry_interval
字段进行了多次单位转换的问题 - 修复 Redis 重连失败问题