文档中心>消息队列 RocketMQ 版

从华为云迁移元数据

最近更新时间:2024-10-30 14:14:12

我的收藏

操作场景

客户在使用 TDMQ RocketMQ 版时,通常会面临着存量业务的切换,例如从自建的 RocketMQ 或者其他平台的托管版 RocketMQ 迁移到 TDMQ-RocketMQ 版上。本文指导您将华为云的 RocketMQ 集群的元数据迁移至腾讯云消息队列 RocketMQ 版。
说明
专享集群和虚拟集群均支持元数据迁移,且迁移步骤相同。

前提条件

已提前在控制台中创建好云上集群命名空间

操作步骤

步骤1:导出元数据文件

1. 要导出华为云控制台上的元数据,需要获取华为云账号的相关凭证。进入控制台的 我的凭证 页面,选择 API凭证,选择 RocketMQ 所在的区域,复制对应的项目ID,如 07e5d7ab260026xxxxxa3c7347b 和 所属区域,如 cn-north-1



2. 进入 RocketMQ 页面,获取到华为云上实例的 instanceId。
3. 在有公网连接的任意 Linux 环境的机器上执行以下迁移命令。命令行内的 API 凭证和 实例ID替换为上述步骤中获取的数据。
./rocketmq-export hw -a YHTxxxxxxxCGNCZFGT -s bIGoRaeJRvxxxxx7pB38SD -r cn-east-3 -p 08535f7e468xxc01c392ef22a -i a21db77c-9e8f-xxxx-5456fef21ea8 -o /tmp/export-data.json
如果您的机器无法连接到公网,您可以点击下载导出脚本。相关的脚本命令如下:
Export rocketmq metadata

Usage:
rocketmq-export hw [flags]

Flags:
-a, --accessKey string (required) Access Key
-h, --help help for hw
-i, --instanceId string (required) Instance ID (default "a21db77c-9e8f-4f24-a3a2-5456fef21ea8")
-o, --outputFile string Output File name (default "/tmp/export-data.json")
-p, --projectId string (required) Project ID (default "08535xxxxxxxx25f2fc9c01c392ef22a")
-r, --region string (required) Reiong (default "cn-east-3")
-s, --sercretKey string (required) Secret Access Key
4. 根据脚本提示进行导出并保存好元数据文件即可。如果出现问题需要排查,可以在命令前面设置环境变量 CONF_LOG_LEVEL=debug 开启 debug 模式,帮助排查问题。

步骤2:创建迁移任务

1. 登录 TDMQ RocketMQ 控制台,进入 迁移上云 页面。进入到迁移任务列表页。单击 新建任务 创建对应的迁移任务。


2. 选择迁移任务类型:
集群迁移:将原先自建集群的元数据迁移到已创建的集群中来,在进行“集群迁移”任务时,迁移工具默认会将开源 RocketMQ Dashboard 中 topic 名称内“%”前的部分解析为命名空间的名称,以此来为您创建多个互相逻辑隔离的命名空间。如原先自建集群中没有区分命名空间,则系统会默认为您生成一个名为 default 的命名空间。
导入至指定的命名空间:将原先自建集群的元数据迁移到指定的命名空间内。如原先的topic没有区分命名空间或者进行业务分类,可以借助迁移上云的机会,在接下来导入的过程中,选择特定的 topic 和 group,指定它们进入不同的命名空间以区分业务或者环境。


3. 根据图示,上传在第一步中获取的元数据文件,选择需要导入的 topic 和 group。
注意
单个任务只能导入最多1000条 topic 和1000条 group 数据,多余的数据将出现导入失败的情况。




步骤3:查看任务状态

任务创建成功后,进入任务列表查看任务进度。如果数据过多时,任务需要加载一段时间。单击查看详情可以查看任务具体的运行状态。



如果任务出现 “部分失败” 或者 “全部失败” 的场景,可以通过筛选查看失败的任务原因。