RabbitMQ 集群數據遷移
- 2020 年 4 月 7 日
- 筆記
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