RocketMQ 高可用创新论文入选 ACM FSE:无需复制业务数据,实现有状态服务秒级接管

作者:金融通

近日,阿里云消息团队发表的 Apache RocketMQ 高可用创新论文 《无业务数据复制的故障接管:面向有状态服务的协议级安全接管》 (英文原名:Replication-Free Failover: Protocol-Fenced Takeover for Stateful Services)入选 FSE 2026 Industry Papers Track

ACM FSE(The ACM International Conference on the Foundations of Software Engineering)是享有盛誉的国际学术会议,被《中国计算机学会推荐国际学术会议和期刊目录》列为 CCF-A 类软件工程顶级会议。FSE 2026 于 2026 年 7 月 5 日至 9 日在加拿大蒙特利尔举行,Industry Papers Track 重点关注软件工程研究在真实工业场景中的创新与应用。

此次入选论文来自阿里云消息团队长期建设和运维大规模云上消息服务的实践。面对数千个租户隔离的 RocketMQ 有状态集群,团队提出 Replication-Free Failover ,旨在低成本、高稳态性能和快速恢复之间取得更好的平衡。

FSE 2026 官方论文页面

创新亮点:不复制业务数据,也能安全接管有状态服务

云上有状态服务通常希望同时获得低成本、高稳态性能和快速恢复,但三者很难兼得。围绕这一工程难题,论文的创新主要体现在以下几个方面。

1. 无需额外业务数据复制,正常数据路径保持不变

方案继续使用单副本、单机文件系统和具备存储侧冗余能力的云块存储,不在 RocketMQ 服务层增加额外业务数据副本,也不引入额外写放大;同时无需重写 CommitLog / WAL,尽可能保留原有的成本与稳态性能优势,并最大程度保持与 Apache RocketMQ 社区版本的兼容性。

2. 协议级安全接管,并可验证所有权转移

方案利用多挂载(Multi-Attach)提前使磁盘对候选节点可见,并通过 NVMe Persistent Reservation(NVMe PR)将写权限控制下沉至存储协议层。在此基础上,引入持有者校验、原子化抢占、关键阶段标记和退避机制,避免文件系统恢复过程中写权限被再次抢占。

3. 面向本地文件系统的接管一致性闭环

方案将确认写权限、清理接管节点的旧缓存、挂载文件系统、执行文件系统日志回放与应用崩溃恢复,以及通过就绪检查恢复流量纳入同一状态机,解决共享盘对新节点可见以后,如何安全恢复持久化状态和服务的问题。

4. 基于持久化进展的去中心化故障探测

方案通过共享盘中租约(lease)记录的版本进展判断当前主节点是否仍能完成持久化,而不仅仅判断进程或者节点是否存活。因此,它能够识别 I/O 卡顿(I/O hang)等"节点仍然存活,但持久化状态已经停止推进"的故障,并减少对集中式控制面的依赖;在网络分区等场景下,则由存储协议层的写隔离保证接管后的单写安全。

5. 最小权限、可审计的生产级端到端落地

方案将 NVMe PR、缓存处理和挂载等高权限操作收敛到节点侧 Agent,业务容器无需获得系统级权限;同时将故障发现、写权限切换、应用恢复和流量恢复串联起来,形成可观测、可审计、可持续演练的端到端恢复流程。

区别于通过重构存储引擎、引入共享 WAL 和对象存储,使节点无状态化的技术路线,本方案选择保留 RocketMQ 已有的单机文件系统和正常读写语义,只重新设计故障接管路径 。由于高可用机制不替换正常存储引擎,既能继续复用成熟的 CommitLog、文件系统缓存和崩溃恢复能力,也使后续新增存储特性无需为高可用路径单独重构。

由此,方案既降低了对 Broker 核心代码的侵入和改造范围,也减少了后续社区版本升级与长期维护成本,更适合已经运行在生产环境中的单主有状态服务。

Replication-Free Failover 整体架构图

评估与生产验证:从分钟级恢复压缩到秒级

论文以 Apache RocketMQ 为代表性工作负载进行评估。结果表明,该方案可以将节点故障后的恢复时间从常见 Kubernetes 单副本云盘方案的分钟级缩短至秒级 ,同时保持接近原生单副本部署的吞吐和延迟表现

论文还报告了方案的生产验证:系统已完成数万次灾备演练 ,并在生产环境运行 。该工作将阿里云消息团队在节点宕机、I/O 卡顿和网络分区等真实故障中的实践,沉淀为一种适用于单主、单写有状态服务的高可用设计,为云上基础软件在成本、性能和恢复速度之间提供了新的工程化选择。

随着 AI Infra 对可靠消息传递和有状态服务的需求增长,这类高可用能力也具备进一步的复用价值。产品能力与配置说明可参见阿里云官方文档:云消息队列 RocketMQ 版实例容灾 ** **1

面向未来,阿里云消息团队将继续围绕 Apache RocketMQ 的云原生、高可用、弹性伸缩和智能运维能力展开探索,把大规模生产经验转化为可复用的技术能力,为企业级消息系统提供更稳定、更高效、更低成本的基础设施支撑。

附论文信息:

论文题目:《无业务数据复制的故障接管:面向有状态服务的协议级安全接管》(英文原名:Replication-Free Failover: Protocol-Fenced Takeover for Stateful Services)

作者: 金融通、古崟佑、季俊涛、傅玉宝、刘涛、赖福智、蔡高扬、林清山(均来自阿里云)

论文概述: 本文面向云上单主有状态服务,提出一种无需额外业务数据复制的故障接管机制。方案保持单副本单机文件系统的正常数据路径不变,并通过存储协议层的写隔离缩短恢复链路。实验与生产实践表明,该方案能够在保持接近单副本稳态性能的同时实现秒级恢复。

相关链接:

1 云消息队列 RocketMQ 版实例容灾产品能力与配置说明

help.aliyun.com/zh/apsaramq...

2 FSE 2026 官方论文详情页

conf.researchr.org/details/fse...

3 ACM Digital Library 完整论文下载

dl.acm.org/doi/10.1145...


欢迎关注 Apache RocketMQ 中文社区(rocketmq-learning.com/),了解 RocketMQ 最新版本、技术文章、最佳实践与社区活动。

也欢迎加入 Apache RocketMQ 开发者交流群(钉钉群号:44552972),与社区开发者一起交流 RocketMQ 在高可用、云原生架构与 AI 原生消息场景中的实践。

相关推荐
摇滚侠11 小时前
《RocketMQ 官网》阅读笔记 RocketMQ 普通消息 延时消息 顺序消息 事务消息
笔记·rocketmq
重庆小透明14 小时前
带你从不同视角了解三大MQ
java·学习·spring·kafka·rabbitmq·rocketmq
阿里云云原生15 小时前
RocketMQ-A2A 创新论文入选 ACM FSE,定义 AI Agent 可靠协作新范式
apache·rocketmq
依晨照旧1 天前
限流命中后该怎么办:直接丢、阻塞等待、延迟重投三种姿势的取舍
后端·rocketmq
摇滚侠3 天前
《RocketMQ 官网》阅读笔记 RocketMQ 订阅 (Subscription)
笔记·rocketmq
摇滚侠3 天前
《RocketMQ 官网》阅读笔记 RocketMQ 消费者组(Consumer Group)消费者(Consumer)
笔记·rocketmq
摇滚侠4 天前
《RocketMQ 官网》阅读笔记 RocketMQ 消息队列 MessageQueue 消息 Messagege
笔记·rocketmq
Bug收容所4 天前
12305项目学习day5
java·spring boot·redis·mysql·spring·rocketmq