RabbitMQ 集群数据迁移

https://blog.51cto.com/u_15127701/2887892

RabbitMQ 集群数据迁移,完成集群A 到集群B  的数据迁移。

RabbitMQ  官网有这么一段话:

 

大致意思就是,在 3.7.0 版本之前,消息是存储在

 
queues, msg_store_persistent ,msg_store_transient
1.
目录下。

因此集群消息迁移的思路,是备份这些文件夹。

然后还有一段话

 

大致意思是在恢复数据前,要先恢复元数据。

 

测试过程:

集群A:

 

集群A 队列消息:

 

消息内容是:

“test xiaoming ”

 

集群B:

 

没有任何消息,队列。

数据恢复如下:

1.导出集群A 的元数据。rabbit_n1_2020-3-30.json

 

 

2.  将集群A的元数据导入到集群B

 

 

 

 

3. 停掉集群A,拷贝集群A 的 n1 n2 n3 下的文件 

 
msg_store_persistent msg_store_transient, queues ,revovery.dets
1.
三台机器上执行

 
service rabbitmq-server stop
1.
4. 停掉集群B ,将 集群A 的 n1 n2 n3 的文件,分别拷贝到 集群B 的 n1 n2 n3 文件mnesia 目录下。

5. 设置权限 

chown -R rabbitmq:rabbitmq msg_store_persistentchown -R rabbitmq:rabbitmq msg_store_transientchown -R rabbitmq:rabbitmq queues
1.
chown -R rabbitmq:rabbitmq revovery.dets
1.

1.
6.启动集群B的 n1 n2 n3

service rabbitmq-server start
1.
 

 

查看 集群B 的结果

 

 

可以看到数据恢复了,看下消息是否正确。

 

 

这样就完成了RabbitMQ集群数据迁移。

 

参考资料:

https://www.rabbitmq.com/backup.html

https://www.rabbitmq.com/upgrade.html

https://www.rabbitmq.com/blue-green-upgrade.html

 

https://blog.51cto.com/u_15127701/2887892
RabbitMQ 集群数据迁移
https://blog.51cto.com/u_15127701/2887892

posted @ 2021-11-04 11:48  技术颜良  阅读(425)  评论(0编辑  收藏  举报