RMQTT 版本更新(0.23.0 / 0.23.1)
内容提要
RMQTT 0.23.0/0.23.1 版本发布,主要更新包括:Dashboard 与 HTTP API 全面升级,新增节点详情页和丢弃消息面板;MQTT 协议增强,启用 TCP 保活并修复 QoS 2 投递语义;修复集群同步和栈溢出问题;性能优化,统一服务端模式;新增规范测试,Rust 最低版本提升至 1.94.0。
延伸解读
MQTT 协议细节修复的意义
本次更新修复了 QoS 2 投递语义和 inflight 报文标识符隔离问题,这些属于 MQTT 协议实现中的关键细节。对于依赖精确一次投递的物联网场景,这些修复能减少消息重复或丢失的风险,提升系统可靠性。同时,修正 CONNACK 原因码和拒绝带 Will Retain 的 CONNECT,有助于客户端更准确地处理连接和遗嘱消息,避免因协议行为不符导致的兼容性问题。
运维与调试体验提升
Dashboard 新增节点详情页、客户端详情页和丢弃消息面板,使运维人员能更直观地监控集群状态和异常消息。连接错误日志增加远端地址,便于快速定位问题来源。HTTP API 历史刷新任务改用专用执行器,避免阻塞主执行器,可能提升 API 响应性能。这些改进对生产环境的日常运维和故障排查有实际帮助。
版本升级注意事项
Rust 最低版本要求提升至 1.94.0,意味着使用旧版 Rust 构建的用户需要升级工具链。此外,tcp_keepalive 配置简化为布尔值,可能影响现有配置文件的兼容性。建议升级前查阅完整 Release Notes,并测试现有配置和客户端兼容性,特别是涉及 QoS 2 和保留消息的场景。
Q&A
RMQTT 0.23.0 和 0.23.1 版本主要更新了哪些方面?
主要更新包括:Dashboard 与 HTTP API 全面升级(新增节点详情页、客户端详情页、丢弃消息面板等);MQTT 协议增强(启用 TCP SO_KEEPALIVE、修复 QoS 2 投递语义等);修复集群同步和栈溢出问题;性能优化(统一服务端模式);新增规范测试;Rust 最低版本提升至 1.94.0。
RMQTT 0.23.0 在 Dashboard 和 HTTP API 方面有哪些具体改进?
具体改进包括:内嵌 Dashboard 并支持历史记录持久化,UI 全面改版;节点页改版,新增节点详情页与客户端详情页;新增丢弃消息面板(异常/非订阅者页签),支持集群特性监控;新增保留消息查询 API,Dashboard 支持直接删除保留消息;HTTP API 文档全面更新。
RMQTT 0.23.0 在 MQTT 协议方面做了哪些增强?
协议增强包括:为 MQTT/TCP 连接启用 TCP SO_KEEPALIVE,tcp_keepalive 配置简化为布尔值;修复 QoS 2 重复 PUBLISH 与会话恢复场景下的精确一次投递语义;隔离 inflight 报文标识符空间,防止 PUBREL 恢复时被覆盖;修正空 ClientId 且 CleanStart/CleanSession=0 时的 CONNACK 原因码;在 retain 不可用时拒绝带 Will Retain 的 CONNECT;修复 proxy-protocol 缓冲区导致的栈溢出问题。
RMQTT 0.23.0 修复了哪些重要的问题?
修复的问题包括:集群插件中 retain/消息同步对 MessageReply::Success 的处理;连接错误日志中加入远端地址;修复 cargo publish 时 Dashboard 资源无法打包的问题;修复 proxy-protocol 栈溢出问题;修复 QoS 2 投递语义和 CONNACK 原因码等。
RMQTT 0.23.0 在性能优化方面做了哪些工作?
性能优化包括:HTTP API 历史刷新任务改用专用执行器,避免阻塞主执行器;服务端统一 main/run 模式,改进错误处理。
RMQTT 0.23.0 对 Rust 版本有什么要求?
Rust 最低版本要求从 1.89.0 提升至 1.94.0(含 CI MSRV)。
RMQTT 0.23.0 新增了哪些测试?
新增了 MQTT v3/v3.1.1/v5 规范符合性测试覆盖;测试套件支持按用例切换 broker 配置;同步测试套件引用计数与覆盖描述文档。