更新时间:2024-04-08 GMT+08:00

新建元数据迁移任务

功能介绍

新建元数据迁移任务。

URI

POST /v2/{project_id}/instances/{instance_id}/metadata

表1 路径参数

参数

是否必选

参数类型

描述

project_id

是

String

项目ID,获取方式请参见获取项目ID。

instance_id

是

String

实例ID。

表2 Query参数

参数

是否必选

参数类型

描述

overwrite

是

String

true开启同名覆盖,会对已有的同名元数据的配置进行修改,false时当topic或group已存在则会报错。

name

是

String

迁移任务名称,名称规则参考创建实例

type

是

String

迁移任务类型,分为自建RocketMQ上云(rocketmq)、自建RabbitMQ上云(rabbitToRocket)

请求参数

表3 请求Body参数

参数

是否必选

参数类型

描述

topicConfigTable

否

Map<String,MigrationRocketMqTopicConfig>

RocketMQ topic 元数据,键为topic名,值为topic配置,迁移任务类型为自建RocketMQ上云(rocketmq)时必填。

subscriptionGroupTable

否

Map<String,MigrationRocketMqSubscriptionGroup>

RocketMQ消费组元数据,键为消费组名,值为消费组配置,迁移任务类型为自建RocketMQ上云(rocketmq)时必填。

vhosts

否

Array of MigrationRabbitVhostMetadata objects

RabbitMQ vhost元数据列表,迁移任务类型为自建RabbitMQ上云(rabbitToRocket)时必填。

queues

否

Array of MigrationRabbitQueueMetadata objects

RabbitMQ队列元数据列表,迁移任务类型为自建RabbitMQ上云(rabbitToRocket)时必填。

exchanges

否

Array of MigrationRabbitExchangeMetadata objects

RabbitMQ交换机元数据列表,迁移任务类型为自建RabbitMQ上云(rabbitToRocket)时必填。

bindings

否

Array of MigrationRabbitBindingMetadata objects

RabbitMQ binding元数据列表,迁移任务类型为自建RabbitMQ上云(rabbitToRocket)时必填。

表4 MigrationRocketMqTopicConfig

参数

是否必选

参数类型

描述

topicName

否

String

topic名称。

order

否

Boolean

是否有序消息。

缺省值:false

perm

否

Integer

topic权限。

缺省值:6

readQueueNums

否

Integer

读队列个数。

缺省值:16

writeQueueNums

否

Integer

写队列个数。

缺省值:16

topicFilterType

否

String

topic过滤类型。

  • SINGLE_TAG:单标签

  • MULTI_TAG:多标签

缺省值:SINGLE_TAG

topicSysFlag

否

Integer

topic系统标志位。

缺省值:0

表5 MigrationRocketMqSubscriptionGroup

参数

是否必选

参数类型

描述

groupName

否

String

消费组名。

consumeBroadcastEnable

否

Boolean

是否允许以广播模式消费。

缺省值:true

consumeEnable

否

Boolean

是否允许消费。

缺省值:true

consumeFromMinEnable

否

Boolean

是否从最小偏移量开始消费。

缺省值:true

notifyConsumerIdsChangedEnable

否

Boolean

消费者ID变化时是否通知。

缺省值:true

retryMaxTimes

否

Integer

消费最大重试次数。

缺省值:16

retryQueueNums

否

Integer

重试队列个数。

缺省值:1

whichBrokerWhenConsumeSlow

否

Long

慢消费时选择的broker节点ID。

缺省值:1

表6 MigrationRabbitVhostMetadata

参数

是否必选

参数类型

描述

name

否

String

vhost名称。

表7 MigrationRabbitQueueMetadata

参数

是否必选

参数类型

描述

vhost

否

String

vhost名称。

name

否

String

队列名称。

durable

否

Boolean

是否持久化。

表8 MigrationRabbitExchangeMetadata

参数

是否必选

参数类型

描述

vhost

否

String

vhost名称。

name

否

String

交换机名称。

type

否

String

交换机类型。

durable

否

Boolean

是否持久化。

表9 MigrationRabbitBindingMetadata

参数

是否必选

参数类型

描述

vhost

否

String

vhost名称。

source

否

String

消息的来源。

destination

否

String

消息的目标。

destination_type

否

String

目标的类型。

routing_key

否

String

路由键。

响应参数

状态码: 200

表10 响应Body参数

参数

参数类型

描述

task_id

String

任务ID

请求示例

  • 创建元数据迁移任务,迁移其他厂商或自建RocketMQ实例的元数据到云上RocketMQ实例。

    POST https://{endpoint}/v2/{project_id}/instances/{instance_id}/metadata?overwrite=true&name=task-123&type=rocketmq
    
    {
      "topicConfigTable" : {
        "topic-test1" : {
          "order" : false,
          "perm" : 6,
          "readQueueNums" : 3,
          "topicFilterType" : "SINGLE_TAG",
          "topicName" : "topic-test1",
          "topicSysFlag" : 0,
          "writeQueueNums" : 3
        }
      },
      "subscriptionGroupTable" : {
        "group-test1" : {
          "consumeBroadcastEnable" : true,
          "consumeEnable" : true,
          "consumeFromMinEnable" : true,
          "groupName" : "group-test1",
          "notifyConsumerIdsChangedEnable" : true,
          "retryMaxTimes" : 2,
          "retryQueueNums" : 1,
          "whichBrokerWhenConsumeSlow" : 1
        }
      }
    }
  • 创建元数据迁移任务,迁移RabbitMQ的元数据到云上RocketMQ实例。

    POST https://{endpoint}/v2/{project_id}/instances/{instance_id}/metadata?overwrite=true&name=task-123&type=rabbitToRocket
    
    {
      "vhosts" : [ {
        "name" : "DeleteVhost123"
      } ],
      "queues" : [ {
        "name" : "test-001",
        "vhost" : "/",
        "durable" : false
      } ],
      "exchanges" : [ {
        "name" : "direct",
        "vhost" : "/",
        "type" : "topic",
        "durable" : false
      } ],
      "bindings" : [ {
        "source" : "direct",
        "vhost" : "/",
        "destination" : "test-001",
        "destination_type" : "queue",
        "routing_key" : "test-001"
      } ]
    }

响应示例

状态码: 200

创建成功

{
  "task_id" : "6cf4dcd3-8471-4139-8b5b-8a3a71f704c7"
}

状态码

状态码

描述

200

创建成功

错误码

请参见错误码。