RabbitMQ 集群数据迁移
参考
Rabbitmq数据迁移-docker-compose - 简书 (jianshu.com)
RabbitMQ业务迁移_分布式消息服务RabbitMQ版_最佳实践_华为云 (huaweicloud.com)
rabbitmq数据备份与还原 - 凉生墨客 - 博客园 (cnblogs.com)
开源RabbitMQ元数据迁移上云 (aliyun.com)
RabbitMQ通过shovel插件迁移数据_狂奔的蜗牛Evan的博客-CSDN博客_rabbitmq 迁移数据
开启shovel插件
转载
RabbitMQ 集群数据迁移,完成集群A 到集群B 的数据迁移。
RabbitMQ 官网有这么一段话:
大致意思就是,在 3.7.0 版本之前,消息是存储在,目录下:
queues, msg_store_persistent ,msg_store_transient
在从3.7.0开始的RabbitMQ版本中,所有消息数据组合在msg_stores/vhosts目录中,并存储在每个vhost的子目录中。
因此集群消息迁移的思路,是备份这些文件夹。
然后还有一段话
大致意思是在恢复数据前,要先恢复元数据。
测试过程:
集群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
三台机器上执行
4. 停掉集群B ,将 集群A 的 n1 n2 n3 的文件,分别拷贝到 集群B 的 n1 n2 n3 文件mnesia 目录下。
5. 设置权限
6.启动集群B的 n1 n2 n3
查看 集群B 的结果
可以看到数据恢复了,看下消息是否正确。
这样就完成了RabbitMQ集群数据迁移。
参考资料:
-
https://www.rabbitmq.com/backup.html
-
https://www.rabbitmq.com/upgrade.html
-
https://www.rabbitmq.com/blue-green-upgrade.html