云上迁移Topic和Group

当您想要将A地域的云消息队列 Kafka 版上的业务无损迁移至B地域,或者创建实例后想复制已有实例元数据(Topic、Group)配置时,您可以使用云消息队列 Kafka 版提供的迁移工具将某个云消息队列 Kafka 版实例的Topic、Group迁移至另一个云消息队列 Kafka 版实例中。

前提条件

重要
  • 迁移不会删除源云消息队列 Kafka 版实例的Topic/Group,只是在目标云消息队列 Kafka 版实例创建相同配置的Topic/Group。

  • 迁移内容仅为Topic/Group配置,不包含Topic/Group中存储的数据。

操作步骤

Topic

  1. 打开命令行工具。

  2. 使用cd命令将路径切换到迁移工具所在目录。

  3. 执行以下命令,对要迁移的Topic进行预检。

    java -jar kafka-migration-assessment.jar TopicMigrationFromAliyun  \
    --sourceAk <yoursourceAccessKeyId>  \
    --sourceSk <yoursourceAccessKeySecret>  \ 
    --sourceRegionId <yoursourceRegionId>  \ 
    --sourceInstanceId <yoursourceInstanceId>  \ 
    --destAk <yourdestAccessKeyId>  \ 
    --destSk <yourdestAccessKeySecret>  \ 
    --destRegionId <yourdestRegionId>  \ 
    --destInstanceId <yourdestInstanceId>

    上文中<>处内容需要替换为您的实例信息,配置规则请参见下表:

    参数

    描述

    sourceAk

    云消息队列 Kafka 版实例所属阿里云账号的AccessKey ID。

    sourceSk

    云消息队列 Kafka 版实例所属阿里云账号的AccessKey Secret。

    sourceRegionId

    云消息队列 Kafka 版实例的地域ID。例如:cn-hangzhou

    sourceInstanceId

    云消息队列 Kafka 版实例的ID。

    destAk

    目标云消息队列 Kafka 版实例所属阿里云账号的AccessKey ID。

    destSk

    目标云消息队列 Kafka 版实例所属阿里云账号的AccessKey Secret。

    destRegionId

    目标云消息队列 Kafka 版实例的地域ID。例如:cn-hangzhou

    destInstanceId

    目标云消息队列 Kafka 版实例的ID。

    返回结果示例如下:

    image

  4. 执行以下命令,迁移Topic。

    java -jar kafka-migration-assessment.jar TopicMigrationFromAliyun  \ 
    --sourceAk <yoursourceAccessKeyId>  \ 
    --sourceSk <yoursourceAccessKeySecret>  \ 
    --sourceRegionId <yoursourceRegionId>  \ 
    --sourceInstanceId <yoursourceInstanceId>  \ 
    --destAk <yourdestAccessKeyId>  \ 
    --destSk <yourdestAccessKeySecret>  \ 
    --destRegionId <yourdestRegionId>  \ 
    --destInstanceId <yourdestInstanceId>  \ 
    --commit

    参数

    描述

    commit

    提交迁移请求。

    返回结果示例如下:

    image

    MigrationSuccessFlag列为true代表Topic已成功在目标实例中创建。

Group

  1. 打开命令行工具。

  2. 使用cd命令将路径切换到迁移工具所在目录。

  3. 执行以下命令,对要迁移的Group进行预检。

    java -jar kafka-migration-assessment.jar ConsumerGroupMigrationFromAliyun  \
    --sourceAk <yoursourceAccessKeyId>  \ 
    --sourceSk <yoursourceAccessKeySecret>  \ 
    --sourceRegionId <yoursourceRegionId>  \ 
    --sourceInstanceId <yoursourceInstanceId>  \ 
    --destAk <yourdestAccessKeyId>  \ 
    --destSk <yourdestAccessKeySecret>  \ 
    --destRegionId <yourdestRegionId>  \ 
    --destInstanceId <yourdestInstanceId>

    上文中<>处内容需要替换为您的实例信息,配置规则请参见下表:

    参数

    描述

    sourceAk

    云消息队列 Kafka 版实例所属阿里云账号的AccessKey ID。

    sourceSk

    云消息队列 Kafka 版实例所属阿里云账号的AccessKey Secret。

    sourceRegionId

    云消息队列 Kafka 版实例的地域ID。例如:cn-hangzhou

    sourceInstanceId

    云消息队列 Kafka 版实例的ID。

    destAk

    目标云消息队列 Kafka 版实例所属阿里云账号的AccessKey ID。

    destSk

    目标云消息队列 Kafka 版实例所属阿里云账号的AccessKey Secret。

    destRegionId

    目标云消息队列 Kafka 版实例的地域ID。例如:cn-hangzhou

    destInstanceId

    目标云消息队列 Kafka 版实例的ID。

    返回结果示例如下: image

  4. 执行以下命令,迁移Group。

    java -jar kafka-migration-assessment.jar ConsumerGroupMigrationFromAliyun  \
    --sourceAk <yoursourceAccessKeyId>  \ 
    --sourceSk <yoursourceAccessKeySecret>  \ 
    --sourceRegionId <yoursourceRegionId>  \ 
    --sourceInstanceId <yoursourceInstanceId>  \ 
    --destAk <yourdestAccessKeyId>  \ 
    --destSk <yourdestAccessKeySecret>  \ 
    --destRegionId <yourdestRegionId>  \ 
    --destInstanceId <yourdestInstanceId>  \
    --commit

    参数

    说明

    commit

    提交迁移请求。

    返回结果示例如下: image

    MigrationSuccessFlag列为true代表Topic已成功在目标实例中创建。

结果验证

  1. 登录云消息队列 Kafka 版控制台,在概览页面的资源分布区域,选择地域。

  2. 实例列表页面,单击目标实例名称。

    • Topic:在实例详情页面,单击左侧导航栏的Topic 管理,在Topic列表中,查看成功迁移的Topic。

    • Group:在实例详情页面,单击左侧导航栏的Group 管理,在Group列表中,查看成功迁移的Group。

后续操作

由于迁移过程中涉及实例切换,请在迁移结束后检查客户端实例接入点是否需要更新,详情请参见查看接入点