单次导入消息队列RabbitMQ版实例的RabbitMQ集群元数据文件包含10个以上Vhost时,可能会出现导入超时的情况。建议您拆分RabbitMQ集群元数据文件后分批导入。消息队列RabbitMQ版根据vhosts列表导入元数据,因此您在拆分元数据文件时,只需要修改vhosts列表,而不需要修改其他元数据。

前提条件

您已经导出包含全部Vhost的RabbitMQ集群元数据文件。如何导出RabbitMQ集群元数据文件,请参见 迁移元数据

背景信息

本文以包含16个Vhost的RabbitMQ集群元数据文件为例进行拆分。该RabbitMQ集群元数据文件的 vhosts列表如下:
{
    "vhosts":[
        {
            "name":"hello1"
        },
        {
            "name":"hello_amqp"
        },
        {
            "name":"helloAMQP"
        },
        {
            "name":"example2test"
        },
        {
            "name":"example3test"
        },
        {
            "name":"example4test"
        },
        {
            "name":"example5test"
        },
        {
            "name":"example6test"
        },
        {
            "name":"example7test"
        },
        {
            "name":"example8test"
        },
        {
            "name":"example9test"
        },
        {
            "name":"example10test"
        },
        {
            "name":"example11test"
        },
        {
            "name":"example12test"
        },
        {
            "name":"example13test"
        },
        {
            "name":"example14test"
        }
    ]
}

拆分元数据文件

  1. 为导出的RabbitMQ集群元数据文件创建两个相同的副本文件,并分别命名为10vhost.json6vhost.json
  2. 10vhost.jsonvhosts列表中,删除前6个Vhost。
    修改后的 10vhost.jsonvhosts列表如下:
    {
        "vhosts":[
            {
                "name":"example5test"
            },
            {
                "name":"example6test"
            },
            {
                "name":"example7test"
            },
            {
                "name":"example8test"
            },
            {
                "name":"example9test"
            },
            {
                "name":"example10test"
            },
            {
                "name":"example11test"
            },
            {
                "name":"example12test"
            },
            {
                "name":"example13test"
            },
            {
                "name":"example14test"
            }
        ]
    }
  3. 6vhost.jsonvhosts列表中,删除后10个Vhost。
    修改后的 6vhost.jsonvhosts列表如下:
    {
        "vhosts":[
            {
                "name":"hello1"
            },
            {
                "name":"hello_amqp"
            },
            {
                "name":"helloAMQP"
            },
            {
                "name":"example2test"
            },
            {
                "name":"example3test"
            },
            {
                "name":"example4test"
            }
        ]
    }