本文说明如何将开源RabbitMQ集群元数据迁移到阿里云消息队列RabbitMQ版实例或者实例中的某个Vhost。

前提条件

您已完成以下操作:

背景信息

RabbitMQ集群元数据是指RabbitMQ集群的信息,包括User、Vhost、Queue、Exchange、Binding Key、Permission、Parameter等信息。RabbitMQ集群元数据存储于RabbitMQ集群的内部数据库,在集群的各个节点之间自动复制。集群中的每个节点都有自己的元数据副本。当某个节点的元数据变更时,所有节点的元数据都会同步更新。因此,集群的各个节点的元数据被导出时都是相同的。RabbitMQ集群元数据可以被导出成一份JSON文件,然后被导入另一个RabbitMQ集群,实现RabbitMQ集群元数据备份。

迁移元数据上云是指将开源RabbitMQ集群的元数据迁移到阿里云消息队列RabbitMQ版实例。消息队列RabbitMQ版是阿里云提供的全托管消息队列服务,兼容开源RabbitMQ。您可以将RabbitMQ集群元数据导出,然后导入消息队列RabbitMQ版实例,消息队列RabbitMQ版会根据成功导入的元数据在目标消息队列RabbitMQ版实例中创建对应的Vhost、Queue、Exchange、Binding,实现RabbitMQ集群元数据迁移上云。您可以将全部Vhost信息导入消息队列RabbitMQ版实例,也可以根据需要将某个Vhost信息导入消息队列RabbitMQ版实例中的Vhost。

导入须知

  • 如果导入全部Vhost,导入的JSON格式的元数据文件必须包含Vhost信息,即必须包括vhosts列表,且exchangesqueuesbindings列表中必须包括vhost。更多信息,请参见sample.json
  • 导入的Vhost、Exchange、Queue、Binding必须符合消息队列RabbitMQ版的数量限制和字符限制。更多信息,请参见使用限制
  • 同一个实例,同一时间只能执行一个任务。当一个任务执行结束后,才能继续为该实例新建任务。

元数据兼容性

由于RabbitMQ和消息队列RabbitMQ版在权限管控机制等方面存在差异,部分RabbitMQ集群元数据不支持导入消息队列RabbitMQ版实例。这些RabbitMQ集群元数据在导入消息队列RabbitMQ版实例时会被自动忽略。消息队列RabbitMQ版实例的RabbitMQ集群元数据兼容性如下:

元数据 描述 兼容
rabbit_version RabbitMQ集群版本。
users RabbitMQ集群用户。
注意 如果您的RabbitMQ集群使用了用户,您可以通过访问控制RAM为消息队列RabbitMQ版实例实现对应的用户管理模式。更多信息,请参见创建RAM用户
vhosts RabbitMQ集群的Vhost。
permissions RabbitMQ集群的用户管理Vhost的权限。
注意 如果您的RabbitMQ集群使用了用户管理Vhost的权限,您可以通过访问控制为消息队列RabbitMQ版实例实现对应的用户管理Vhost的权限。更多信息,请参见RAM权限策略
parameters RabbitMQ集群的运行时参数。
global_parameters RabbitMQ集群的全局运行时参数。
policies RabbitMQ集群的一类Vhost运行时参数,用于为Vhost下的Exchange和Queue设置可选参数。
注意 如果您的RabbitMQ集群使用了Vhost域运行时参数配置,您可以在 消息队列RabbitMQ版控制台创建对应的Exchange和Queue时,设置相应的可选参数。Exchange和Queue的可选参数设置后不支持修改。如需修改,您需要删除后重新创建。更多信息,请参见创建Exchange创建Queue
queues RabbitMQ集群的Queue。
exchanges RabbitMQ集群的Exchange。
bindings RabbitMQ集群的Exchange和Queue的绑定关系。

迁移元数据

  1. 登录消息队列RabbitMQ版控制台
  2. 概览页面的资源分布区域,选择地域。
  3. 在左侧导航栏,单击迁移上云
  4. 迁移上云页面,单击创建任务
  5. 创建任务面板,设置相关参数,单击确定
    参数 描述 示例值
    实例 元数据迁移到实例的实例名称。 amqp-cn-7mz2cjgk****
    导入模式 将全部Vhost或者指定Vhost的元数据导入消息队列RabbitMQ版实例或者Vhost。
    • ALL:将开源RabbitMQ全部Vhost元数据导入消息队列RabbitMQ版实例。
    • Vhost:将开源RabbitMQ指定Vhost元数据导入消息队列RabbitMQ版实例的Vhost中。
    Vhost
    Vhost 迁移元数据至 消息队列RabbitMQ版实例指定的Vhost。 导入模式选择Vhost时,显示该参数。 test-vhost****
    元数据 需要迁移的元数据文件。单击选择文件,选择本地的元数据文件后,单击打开
    说明 元数据文件的大小不超过20 MB。
    rabbit_mq-amqp-load-test011122063****
    迁移上云页面,显示已创建的迁移任务,并可以查看任务执行状态。

    关于导入的元数据的详细信息、任务执行失败的详细信息查看,请参见相关操作

相关操作

通过创建任务迁移的元数据,支持查看元数据的详细信息和任务执行失败时失败原因。

  • 查看导入成功的元数据信息
    1. 迁移上云页面,目标任务所在行目标实例列,单击实例名称。
    2. 在左侧导航栏,单击Vhost 列表,目标Vhost所在行操作列,单击详情,查看Vhost详细信息。

      更多信息,请参见查看Vhost详情

  • 查看执行失败的任务详情
    1. 迁移上云页面,目标任务所在行操作列,单击详情

      您也可以在迁移上云页面,目标实例所在行同步元数据数量列,单击同步数量。

    2. 迁移详情页面,单击Vhost、Exchange、Queue、Binding对应的页签,查看失败原因。