RabbitMQ 集群數據遷移

RabbitMQ 集群數據遷移,完成集群A 到集群B 的數據遷移。

RabbitMQ 官網有這麼一段話:

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

queues, msg_store_persistent ,msg_store_transient

目錄下。

因此集群消息遷移的思路,是備份這些文件夾。

然後還有一段話

大致意思是在恢複數據前,要先恢復元數據。

測試過程:

集群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

三台機器上執行

service rabbitmq-server stop 

4. 停掉集群B ,將 集群A 的 n1 n2 n3 的文件,分別拷貝到 集群B 的 n1 n2 n3 文件mnesia 目錄下。

5. 設置許可權

chown -R rabbitmq:rabbitmq msg_store_persistent    chown -R rabbitmq:rabbitmq msg_store_transient    chown -R rabbitmq:rabbitmq queues  chown -R rabbitmq:rabbitmq revovery.dets    

6.啟動集群B的 n1 n2 n3

service rabbitmq-server start  

查看 集群B 的結果

可以看到數據恢復了,看下消息是否正確。

這樣就完成了RabbitMQ集群數據遷移。

參考資料:

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