我們有兩個AWS主機在集羣中運行RabbitMQ實現。我們需要升級硬件,因此我們開發了一個廚師食譜來產生更換服務器。我們寧可不要用手重新Clone RabbitMQ管理員用戶等在替換服務器上
一件事是管理員用戶,隊列等
什麼是讓從舊主機的東西到新的最好的方法是什麼?我相信這是/var/lib/rabbitmq/mnesia
目錄中的所有內容。
將文件從一臺主機複製到另一臺是明智的嗎?
有沒有一個程序化的手段來做到這一點?
它可以編入我們的廚師食譜?
我們有兩個AWS主機在集羣中運行RabbitMQ實現。我們需要升級硬件,因此我們開發了一個廚師食譜來產生更換服務器。我們寧可不要用手重新Clone RabbitMQ管理員用戶等在替換服務器上
一件事是管理員用戶,隊列等
什麼是讓從舊主機的東西到新的最好的方法是什麼?我相信這是/var/lib/rabbitmq/mnesia
目錄中的所有內容。
將文件從一臺主機複製到另一臺是明智的嗎?
有沒有一個程序化的手段來做到這一點?
它可以編入我們的廚師食譜?
你絕對可以通過命令行導入和導出配置:https://www.rabbitmq.com/management-cli.html
我不知道有關admin用戶,雖然。
如果您在新硬件上創建新的rabbitmq節點,您將獲得該新節點中的所有用戶。這是很容易嘗試:
我寫的因爲以這種方式創建集羣的速度更快,但是如果您已經擁有集羣,則可以將其用於測試,如果您願意的話。
對於隊列和交流,我不想引用幾乎一切都在RabbitMQ的文檔頁面發現的high availability,但我只想說,你必須要注意以下幾點:
我會做逐漸遷移,等待t他排隊清空,然後殺死舊硬件上的節點。它可能在一個大爆炸時尚,但似乎更危險。如果你有一個正在運行的系統,比設置隊列鏡像,並嘗試找到適當的時刻做手動同步 - 但要小心,這對經紀人的表現有很大的影響。
此外,還有這個shovel plugin(我要指出的是,我沒有使用它,甚至探索它),但是這可能是另一種方式,因爲去(報價表的鏈接):
本質,鏟子是一個簡單的泵。每個鏟:
連接到源代理和目的地代理,消耗從隊列 消息,重新發布的每個消息到目的地 經紀人(使用,默認情況下,原來的交換名稱和 routing_key)。