tencent cloud

消息队列 RocketMQ 版

动态与公告
新功能发布记录
公告
产品简介
产品概述
什么是消息队列 RocketMQ 版
产品优势
应用场景
产品系列
开源对比
高可用
使用限制
开服地域
基本概念
产品计费
计费概述
价格说明
计费示例
切换集群计费模式(5.x)
续费说明
查看消费明细
退费说明
欠费说明
快速入门
快速入门概述
准备工作
步骤1:创建 RocketMQ 资源
步骤2:使用 SDK 收发消息(推荐)
步骤2:运行 RocketMQ 客户端(可选)
步骤3:查询消息
步骤4:销毁资源
用户指南
使用流程指引
配置账号权限
新建集群
命名空间管理
配置 Topic
配置 Group
连接集群
管理消息
管理集群
查看监控和配置告警
跨集群复制消息
实践教程
RocketMQ 常见概念命名规范
RocketMQ 客户端实践
RocketMQ 性能压测和容量评估
使用社区版 HTTP SDK 接入
客户端风险说明和更新指南
关于 RocketMQ 4.x 集群角色(Role)相关云 API 迁移指引
迁移指南
有感迁移
无感迁移
开发指南
消息类型
消息过滤
消息重试
POP 消费模式(5.x)
集群消费与广播消费
订阅关系一致性
限流
API 参考(5.x)
History
API Category
Making API Requests
Topic APIs
Consumer Group APIs
Message APIs
Role Authentication APIs
Hitless Migration APIs
Cloud Migration APIs
Cluster APIs
Data Types
Error Codes
API 参考(4.x)
SDK 参考
SDK 概述
5.x SDK
4.x SDK
安全与合规
权限管理
云 API 审计
删除保护
常见问题
4.x 实例常见问题
服务协议
服务等级协议
联系我们

消息服务数据流迁移

PDF
聚焦模式
字号
最后更新时间: 2026-01-23 17:02:15

操作背景

通过 元数据迁移任务,客户可以将自建的 RocketMQ 集群的元数据同步到 TDMQ RocketMQ 上。在元数据迁移完成之后,客户需要修改生产者集群和消费者集群的接入信息,将生产者集群和消费者集群从旧自建的 RocketMQ 迁移到 TDMQ RocketMQ 版上,最终实现所有的消息收发业务都在新的 RocketMQ 集群上进行。
说明
迁移消息服务只迁移消息生产和消费链路,并不会迁移原 RocketMQ 集群上的消息数据。目前仅适用于迁移到专享集群,共享集群会在公测结束后开始支持。

迁移步骤

本文主要介绍使用双读双写分批发布方案迁移消息服务的方法。迁移过程中,生产者集群和消费者集群可并行在原 RocketMQ 集群和新 RocketMQ 集群上同时生产或消费消息,不会因迁移产生数据积压,业务可平滑过渡。具体方案和操作流程,请参见下图。



具体步骤如下:
1. TDMQ RocketMQ 集群创建完成,相关元数据迁移完成,并在控制台获取需要的客户端信息,如新集群的接入点 AccessKey 和 SecretKey 。
2. 切换消费者集群中部分节点的接入信息,将这部分消费者接入到新版 RocketMQ 集群。切换的这部分消费者将消费新版 RocketMQ 集群中的消息,剩余消费者继续消费原 RocketMQ 集群中的消息。
3. 切换生产者集群中部分节点的接入信息,将这部分生产者接入到新版 RocketMQ。切换的这部分生产者将发送消息到新版 RocketMQ 集群中;剩余的生产者还是将消息发送到旧版 RocketMQ 集群中。为了防止消息的重复或丢失,可以事先做好消息消费的幂等逻辑。
4. 将剩余的生产者全部接入到新的 RocketMQ 集群上。此时所有消息将全部被发送到新版 RocketMQ 集群中。
5. 检查原 RocketMQ 集群是否有堆积的消息没有消费,确认原 RocketMQ 集群没有堆积或者未处理的消息后,将剩余的消费者全部接入到新版 RocketMQ 集群上。完成整个数据流的迁移操作。
注意
如您没有按照上述顺序进行切换,如先切换生产者再切换消费者,可能导致消息丢失的情况。
切换剩余消费者之前,请确保原 RocketMQ 集群中的消息已全部消费完,否则可能会导致消费遗漏。您可以通过查看原 RocketMQ 集群中的消息堆积量来判断消息是否消费完成。

迁移整体交互流程图





可能存在的问题

顺序问题

由于集群切换,切换过程中,消息顺序问题无法保证;切换的过程中会导致局部乱序。

消息重复

理论上不会重复,极端情况下会发生,例如切换过程中,消费者消费了消息,但是还未给服务端(原 RocketMQ 集群)ACK,这时会导致该消息进入重试队列导致重复消费。对消息做幂等处理逻辑可以规避这个问题,

消费延迟

读切换过程中,由于分区重新分配,需要进行队列和消费者客户端间的 rebalance,可能导致短暂的消费延迟现象。遇到该情况无需额外操作,切换完成后即可恢复。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈