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