在导出RabbitMQ集群元数据时,RabbitMQ支持导出全部Vhost或某个指定的Vhost,而不支持导出部分Vhost。您可以先导出全部Vhost,然后在导出的元数据文件中删除不需要的Vhost,从而间接实现导出部分Vhost。
前提条件
在导出RabbitMQ集群元数据前,请确保您已开启RabbitMQ管理插件。开启RabbitMQ管理插件后,您才可以通过RabbitMQ控制台或HTTP API导出RabbitMQ集群元数据。详情请参见
开启RabbitMQ管理插件。
背景信息
某个RabbitMQ集群有6个Vhost(hello1
、hello_amqp
、helloAMQP
、example2test
、example3test
和/
)。本文以导出其中4个Vhost (hello1
、hello_amqp
、helloAMQP
、example2test
)为例进行说明。
导出部分Vhost
- 参考以下任一方式导出包括全部Vhost的RabbitMQ集群元数据文件。
导出的RabbitMQ集群元数据文件的
vhosts
列表如下:
{
"vhosts":[
{
"name":"hello1"
},
{
"name":"hello_amqp"
},
{
"name":"helloAMQP"
},
{
"name":"example2test"
},
{
"name":"example3test"
},
{
"name":"/"
}
]
}
- 在导出的RabbitMQ集群元数据文件的
vhosts
列表中删除不需要的example3test
和/
。
说明 当您从vhosts
列表删除某个Vhost后,该Vhost下的Exchange、Queue和Binding都会同时失效,即这些Exchange、Queue和Binding在导入消息队列RabbitMQ版时会被自动忽略。
修改后的RabbitMQ集群元数据文件的
vhosts
列表如下:
{
"vhosts":[
{
"name":"hello1"
},
{
"name":"hello_amqp"
},
{
"name":"helloAMQP"
},
{
"name":"example2test"
}
]
}