開源RabbitMQ元數據遷移上云
本文說明如何將開源RabbitMQ集群元數據遷移到阿里云云消息隊列 RabbitMQ 版實例或者實例中的某個Vhost。
前提條件
背景信息
RabbitMQ集群元數據是指RabbitMQ集群的信息,包括User、Vhost、Queue、Exchange、Binding Key、Permission、Parameter等信息。RabbitMQ集群元數據存儲于RabbitMQ集群的內部數據庫,在集群的各個節點之間自動復制。
集群中的每個節點都有自己的元數據副本。當某個節點的元數據變更時,所有節點的元數據都會同步更新。因此,集群的各個節點的元數據被導出時都是相同的。
RabbitMQ集群元數據可以被導出成一份JSON文件,然后被導入另一個RabbitMQ集群,實現RabbitMQ集群元數據備份。
遷移元數據上云是指將開源RabbitMQ集群的元數據遷移到阿里云云消息隊列 RabbitMQ 版實例。云消息隊列 RabbitMQ 版是阿里云提供的全托管消息隊列服務,兼容開源RabbitMQ。您可以將RabbitMQ集群元數據導出,然后導入云消息隊列 RabbitMQ 版實例,云消息隊列 RabbitMQ 版會根據成功導入的元數據在目標云消息隊列 RabbitMQ 版實例中創建對應的Vhost、Queue、Exchange、Binding,實現RabbitMQ集群元數據遷移上云。
您可以將全部Vhost信息導入云消息隊列 RabbitMQ 版實例,也可以根據需要將某個Vhost信息導入云消息隊列 RabbitMQ 版實例中的Vhost。
注意事項
如果導入全部Vhost,導入的JSON格式的元數據文件必須包含Vhost信息,即必須包括
vhosts
列表,且exchanges
、queues
、bindings
列表中必須包括vhost
。更多信息,請參見sample.json。導入的Vhost、Exchange、Queue、Binding必須符合云消息隊列 RabbitMQ 版的數量限制和字符限制。更多信息,請參見使用限制。
同一個實例,同一時間只能執行一個任務。當一個任務執行結束后,才能繼續為該實例新建任務。
元數據兼容性
由于RabbitMQ和云消息隊列 RabbitMQ 版在權限管控機制等方面存在差異,部分RabbitMQ集群元數據不支持導入云消息隊列 RabbitMQ 版實例。這些RabbitMQ集群元數據在導入云消息隊列 RabbitMQ 版實例時會被自動忽略。云消息隊列 RabbitMQ 版實例的RabbitMQ集群元數據兼容性如下:
元數據 | 描述 | 兼容 |
rabbit_version | RabbitMQ集群版本。 | 否 |
users | RabbitMQ集群用戶。 | 否 重要 如果您的RabbitMQ集群使用了用戶,您可以通過訪問控制RAM為云消息隊列 RabbitMQ 版實例實現對應的用戶管理模式。更多信息,請參見 創建RAM用戶。 |
vhosts | RabbitMQ集群的Vhost。 | 是 |
permissions | RabbitMQ集群的用戶管理Vhost的權限。 | 否 重要 如果您的RabbitMQ集群使用了用戶管理Vhost的權限,您可以通過訪問控制為云消息隊列 RabbitMQ 版實例實現對應的用戶管理Vhost的權限。更多信息,請參見RAM權限策略。 |
parameters | RabbitMQ集群的運行時參數。 | 否 |
global_parameters | RabbitMQ集群的全局運行時參數。 | 否 |
policies | RabbitMQ集群的一類Vhost運行時參數,用于為Vhost下的Exchange和Queue設置可選參數。 | 否 重要 如果您的RabbitMQ集群使用了Vhost域運行時參數配置,您可以在 云消息隊列 RabbitMQ 版控制臺創建對應的Exchange和Queue時,設置相應的可選參數。Exchange和Queue的可選參數設置后不支持修改。如需修改,您需要刪除后重新創建。更多信息,請參見創建Exchange和創建Queue。 |
queues | RabbitMQ集群的Queue。 | 是 |
exchanges | RabbitMQ集群的Exchange。 | 是 |
bindings | RabbitMQ集群的Exchange和Queue的綁定關系。 | 是 |
遷移元數據
登錄云消息隊列 RabbitMQ 版控制臺,在左側導航欄,單擊遷移上云。
在遷移上云頁面頂部菜單欄選擇地域,然后在頁面左上角單擊創建任務。
在創建任務面板,設置相關參數,單擊確定。
參數
描述
示例值
實例
元數據遷移到實例的實例名稱。
amqp-cn-7mz2cjgk****
導入模式
將全部Vhost或者指定Vhost的元數據導入云消息隊列 RabbitMQ 版實例或者Vhost。
ALL:將開源RabbitMQ全部Vhost元數據導入云消息隊列 RabbitMQ 版實例。
Vhost:將開源RabbitMQ指定Vhost元數據導入云消息隊列 RabbitMQ 版實例的Vhost中。
Vhost
Vhost
遷移元數據至 云消息隊列 RabbitMQ 版實例指定的Vhost。 導入模式選擇Vhost時,顯示該參數。
test-vhost****
元數據
需要遷移的元數據文件。單擊選擇文件,選擇本地的元數據文件后,單擊打開。
說明元數據文件的大小不超過20 MB。
rabbit_mq-amqp-load-test011122063****
在遷移上云頁面,顯示已創建的遷移任務,并可以查看任務執行狀態。
關于導入的元數據的詳細信息、任務執行失敗的詳細信息查看,請參見相關操作。
相關操作
通過創建任務遷移的元數據,支持查看元數據的詳細信息和任務執行失敗時失敗原因。
查看導入成功的元數據信息
在遷移上云頁面,目標任務所在行目標實例列,單擊實例名稱。
在左側導航欄,單擊Vhost 列表,目標Vhost所在行操作列,單擊詳情,查看Vhost詳細信息。
更多信息,請參見查看Vhost連接詳情。
查看執行失敗的任務詳情
在遷移上云頁面,目標任務所在行操作列,單擊詳情。
您也可以在遷移上云頁面,目標實例所在行同步元數據數量列,單擊同步數量。
在遷移詳情頁面,單擊Vhost、Exchange、Queue、Binding對應的頁簽,查看失敗原因。