You need to enable JavaScript to run this app.
文档中心
消息队列 RocketMQ版

消息队列 RocketMQ版

复制全文
下载 pdf
业务迁移
RocketMQ 迁移上云(方案二)
复制全文
下载 pdf
RocketMQ 迁移上云(方案二)
本文介绍 RocketMQ 业务迁移的操作步骤,您可以参考本文档将自建 RocketMQ 集群或其他云厂商 RocketMQ 集群迁移至火山引擎消息队列 RocketMQ 版。
注意事项
  • 业务迁移之前,请确认您已根据业务需求选择了对应迁移方案。迁移方案对比请参见迁移概述
  • 由于 Producer 和 Consumer 为集群化部署,迁移时可以分批操作,上层业务无感知。
  • 分批迁移过程中,可以在火山引擎云监控服务控制台监控业务相关流量数据,确认业务正常运行。
  • 如果有多个 RocketMQ 实例需要迁移到同一个消息队列 RocketMQ 版实例中,请依次进行迁移。
  • 如果使用延时消息,建议将旧实例消费端保存 3 天或更长时间。
  • 业务迁移只迁移消息生产和消费链路,并不会迁移 RocketMQ 旧集群上的消息数据。
1 环境准备
迁移之前,您需要根据业务量合理评估资源需求,并创建 RocketMQ 实例及相关的依赖资源。
1.1 迁移评估
根据现有业务量和消息量估算所需的消息队列 RocketMQ 版资源,例如 Topic 个数、生产和消费的消息量、TPS 峰值等。不同规格的 RocketMQ 实例代表不同的计算能力及存储空间,请根据业务量合理评估资源需求。
1.2 准备相关资源
确认资源需求之后,还需要为 RocketMQ 准备以下相关资源。
  • 创建私有网络和子网。
  • 火山引擎消息队列 RocketMQ 版目前仅支持私有网络访问,迁移后您的服务需要和 RocketMQ 实例处于相同的区域(Region)和 VPC 内,才能正常访问实例。详细操作步骤,请参见创建私有网络
  • 购买 ECS 云服务器实例。
  • 在连接 RocketMQ 实例之前,您需要先购买 ECS 云服务器,安装 JDK 以及配置环境变量。详细操作步骤,请参见购买云服务器
  • 购买 RocketMQ 实例。
  • 请根据业务量评估结果合理选择 RocketMQ 实例的计算规格和存储规格,保证资源充足。详细操作步骤,请参见创建实例
  • 创建 RocketMQ 实例密钥。
  • 消息队列 RocketMQ 版支持 ACL 权限管理,完全兼容 RocketMQ 的所有内置权限策略。您需要在 RocketMQ 控制台中创建密钥对,并妥善保管 AccessKey ID 和 AccessKey Secret。详细操作步骤,请参见创建密钥
2 迁移元数据
将开源 RocketMQ 的 Topic 和 Group 的配置信息迁移到消息队列 RocketMQ 版的新实例中,包括 Topic 名称、队列个数和权限在内的配置信息均需要迁移。迁移元数据时,并不会迁移 Topic 中的消息数据。
您可以在原 RocketMQ 集群的 WebUI 控制台或云控制台中查看并收集相关元数据,并手动创建相关 Topic 和 Group 配置。
在迁移元数据的步骤中,您需要获取的元数据包括以下几种。
元数据
说明
迁移方式
Topic 名称
Topic 的名称。
在火山引擎 RocketMQ 控制台中创建相同名称的 Topic。
Group ID
Group 的 ID。
在火山引擎 RocketMQ 控制台中创建相同的 Group。
RocketMQ 实例 ID
RocketMQ 实例的 ID。
创建火山引擎 RocketMQ 实例即可。
在步骤 3 迁移消息服务时需要在代码中手动替换实例 ID 为新的实例 ID,表示将消息通路切换到新的集群。
说明
如果用户在旧集群生产端和客户端设置了命名空间(Namespace),需要将 Namespace 修改为新实例的实例 ID。
密钥对
RocketMQ 实例密钥对。
火山引擎提供数据面的密钥对,您需要在 RocketMQ 控制台中创建密钥对。如果已在步骤 1 环境准备中创建了密钥对,则无需再次创建。
在步骤 3 迁移消息服务时需要在代码中手动替换 AK、SK 为新的密钥对。
接入点
RocketMQ 实例的接入点。
在创建 RocketMQ 实例后,可以在实例详情页面查看接入点信息。
步骤 3 迁移消息服务时需要在代码中手动替换接入点为新的实例接入点。
3 迁移消息服务
本方案仅切换消息的生产与消费链路,不迁移历史消息数据。为保证顺序消息的稳定迁移,采用“先切生产、后切消费、分批灰度、观测闭环”的策略。推荐迁移步骤如下:
3.1 生产端切换
本阶段目标是确保消息能够稳定、有序地发送到新 RocketMQ 实例中。
注意
  • 切勿在此阶段中变更任何消费端的配置。
  • 旧集群的消费端必须保持运行,以清空旧集群中正在持续产生的存量消息。
  1. 切换第一批生产者。
  • 将第一批生产者的配置指向新 RocketMQ 集群的接入点,并按需重新部署或重启应用。
  1. 观测验证。
  • 从小流量批次开始切生产端,实时观测新 RocketMQ 实例的消息生产速率等指标是否符合预期。稳定运行一段时间,例如 15-30 分钟后,再逐步扩大灰度批次。
3.2 消费端切换
消费端的切换,一定要等旧集群的消息全部消费完再进行,这是避免数据丢失、重复和乱序的关键。
  1. 确认旧集群存量消息为 0。
  • 登录旧 RocketMQ 集群的控制台,持续观察对应 Topic 和 Group 的消息堆积量(Lag),直到堆积量长时间保持为 0。同时,确认旧消费端的日志中不再有新的消息处理记录。
注意
如果是定时消息或事务消息,需要检查是否有未到期的消息或待提交的事务。
  1. 按批次下线旧消费者。
  • 确认消息排空后,将对应批次的旧消费端应用实例逐步指向新 RocketMQ 集群。消费切到新 RocketMQ 集群的消费者将自动从其消费位点开始拉取新集群中的消息。
注意
每切换一批消费者,都要观察消费成功率、消费耗时、消息堆积等指标,再进行下一批次的消费端切换。
3.3 全量切换与旧集群回收
当所有批次迁移完成,新集群承载全部流量且稳定运行后,进行最后的收尾工作。
  1. 确认生产端完全切换。
  • 确认所有生产者已不再向旧集群写入数据。旧集群监控上,所有 Topic 生产速率应为 0。
  1. 确保存量消息消费完毕。
  • 保持旧集群的消费者运行,直到所有存量消息被消费完毕。
  1. 稳定观察期。
  • 全量切换后,新实例持续稳定运行至少 24~48 小时,各项核心指标无异常波动。
注意
强烈推荐为新 RocketMQ 实例配置告警。具体操作,请参见推荐设置的告警规则
  1. 下线旧集群。
  • 可下线旧 RocketMQ 集群。
4 确认迁移结果
分批迁移过程中,全部生产者、消费者节点迁移完成后,建议在火山引擎云监控服务控制台监控新实例和旧实例的生产和消费相关状态与流量数据,确认消息通路已成功迁移至新实例,确保业务正常运行。
您可以通过以下方式判断流量的分发情况:
  • 旧集群:生产写入速率为 0,消息消费速率为 0,消息堆积为 0。
  • 新实例:生产和消费 TPS 应和迁移前相同。
最近更新时间:2026.04.01 10:54:34
这个页面对您有帮助吗?
有用
有用
无用
无用