

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 从经典队列迁移到 Amazon MQ for RabbitMQ 上的仲裁队列
<a name="quorum-queues-migration"></a>

您可以通过在同一集群上创建新的虚拟主机或就地迁移的方式，将经典镜像队列迁移到 3.13 或更高版本的 Amazon MQ 代理上的仲裁队列。

## 选项 1：使用新的虚拟主机从经典镜像队列迁移到仲裁队列
<a name="migrating-quorum-queues-with-vhost"></a>

 您可以通过在同一集群上创建新的虚拟主机，将经典镜像队列迁移到 3.13 或更高版本的 Amazon MQ 代理上的仲裁队列。

1. 在现有集群中，创建一个新的虚拟主机（vhost），默认队列类型设为仲裁队列。

1. 使用经典镜像队列，从新的 vhost 创建 [联合插件](rabbitmq-basic-elements-plugins.md#rabbitmq-federation-plugin)，URI 指向旧的 vhost。

1. 使用 `rabbitmqadmin`，将旧 vhost 中的定义导出到新文件中。必须对架构文件进行更改，使其与仲裁队列兼容。有关您需要对文件进行的更改的完整列表，请参阅 RabbitMQ 仲裁队列文档中的[移动定义](https://www.rabbitmq.com/blog/2023/03/02/quorum-queues-migration#moving-definitions)。对文件进行必要更改后，将定义重新导入到新的 vhost。

1.  在新的 vhost 中创建新策略。有关仲裁队列的 Amazon MQ 策略配置建议，请参阅[Amazon MQ for RabbitMQ 仲裁队列的策略配置](quorum-queues-policy-configurations.md)。然后，将之前创建的 Federation 从旧 vhost 启动到新 vhost。

1.  将使用者和生产者指向新的 vhost。

1. 配置 Shovel 插件以移动所有剩余的消息。队列为空后，删除 Shovel。

## 从经典镜像队列就地迁移到仲裁队列
<a name="migrating-quorum-queues-in-place"></a>

 您可以通过就地迁移的方式，将经典镜像队列迁移到 3.13 或更高版本的 Amazon MQ 代理上的仲裁队列。

1. 停止使用者和生产者。

1. 创建新的临时仲裁队列。

1. 配置 Shovel 插件，将旧的经典镜像队列中的任何消息移到新的临时仲裁队列。将所有消息移到临时仲裁队列后，删除 Shovel。

1. 删除源经典镜像队列。然后，用与源经典镜像队列相同的名称和绑定重新创建一个仲裁队列。

1. 创建新的 Shovel，将消息从临时仲裁队列移到新的仲裁队列。