全部產品
Search
文件中心

Migration Hub:自建 RabbitMQ 遷移到阿里雲訊息佇列 RabbitMQ 版

更新時間:Nov 25, 2025

一、適用情境

本方案適用於 自建 RabbitMQ 遷移至 阿里雲訊息佇列 RabbitMQ 情境。

遷移類型適用於:中繼資料遷移。

二、阿里雲訊息佇列 RabbitMQ 對比自建 RabbitMQ 的優勢

對比項

阿里雲 RabbitMQ

自建 RabbitMQ

叢集TPS上限

無上限。雲訊息佇列 RabbitMQ 版採用叢集分布式部署,無主架構,能夠橫向擴容、縮容叢集規模。

有上限。受機器效能限制,擴容依賴升級機器硬體規格,且有上限。

單個Queue的TPS上限

無上限。雲訊息佇列 RabbitMQ 版支援單隊列的橫向擴充,效能上無並發限制,容量無上限。

有上限,單隊列效能上限為單節點上限。

串連數

無上限。雲訊息佇列 RabbitMQ 版執行個體能承載的串連數可隨叢集規模擴大而增加,不受串連數增加的影響。

有上限。受機器效能限制,單機的串連數有上限,且無法擴容。

定時訊息

秒級精確度、高效能、開箱即用。

使用複雜。

服務可用性和資料可靠性

  • 多可用性區域高可用。

  • 存算分離架構,故障計算節點可快速摘除隔離。

  • 資料三副本儲存。

通過鏡像隊列或仲裁隊列實現,容易出現腦裂問題。

訊息堆積能力

在海量訊息堆積的情況下,始終保持高效能,不影響叢集的正常服務。

大量訊息堆積容易引起記憶體問題,可能導致服務宕機。

彈效能力

  • 通過增減叢集節點數量實現擴縮容。

  • Serverless系列按照訊息生產消費量收費,無需評估容量。

單機容量就是叢集並發容量的上限,擴容需要通過升配機器規格或拆分叢集實現。

巡檢系統

自動探索並修複死結、宕機等問題。

無。

三、遷移相關工具介紹

1、阿里雲訊息佇列 RabbitMQ 控制台遷移工具

阿里雲訊息佇列 RabbitMQ 控制台遷移工具,將開源 RabbitMQ 匯出的中繼資料檔案,通過建立遷移任務形式,匯入到已建立好的阿里雲訊息佇列 RabbitMQ 執行個體中。支援 ALL、VHost 兩種匯入模式,最終實現建立對應的 Vhost、Queue、Exchange、Binding。

遷移工具只支援中繼資料遷移,不支援訊息資料移轉。

四、遷移方案

1、遷移整體流程

  • 執行個體建立:在阿里雲建立對應的規格的雲訊息佇列 RabbitMQ 執行個體。

  • 資料移轉:

    • 中繼資料遷移:通過使用阿里雲 RabbitMQ 控制台遷移工具,進行中繼資料遷移

  • 資料校正:

    • 中繼資料校正:通過檢查遷移前後 vhost 的條數、Queue 的條數來校正中繼資料的一致性。

2、資料移轉方案

2.1、使用阿里雲 RabbitMQ 控制台遷移工具進行中繼資料遷移

遷移原理:

遷移中繼資料是指將開源 RabbitMQ 叢集的中繼資料匯出,並將其匯入到阿里雲雲訊息佇列 RabbitMQ 版執行個體。雲訊息佇列 RabbitMQ 版會根據成功匯入的中繼資料在目標雲訊息佇列 RabbitMQ 版執行個體中建立對應的Vhost、Queue、Exchange、Binding,實現RabbitMQ叢集中繼資料遷移上雲。

前置條件:
  • 自建源端需開啟 RabbitMQ 外掛程式。

  • 建立作為中繼資料遷移目標的雲訊息佇列 RabbitMQ 版執行個體和 Vhost。

風險及注意項:
  • 由於RabbitMQ和雲訊息佇列 RabbitMQ 版在許可權管控機制等方面存在差異,rabbit_version、users、permissions、parameters、global_parameters和policies中繼資料不支援匯入雲訊息佇列 RabbitMQ 版執行個體,在匯入時會被自動忽略。

3、資料校正方案

3.1 中繼資料校正:

  • 通過檢查遷移前後 vhost 的條數、Queue 的條數來校正中繼資料的一致性。

五、實施遷移過程

1、使用阿里雲 RabbitMQ 控制台遷移工具進行中繼資料遷移

1.1 匯出開源 RabbitMQ 中繼資料

  • 在瀏覽器中開啟開源 RabbitMQ 控制台。開源 RabbitMQ 控制台地址:http://{RabbitMQ IP地址}:1567;

  • 在登入頁面的Username文字框輸入您的使用者名稱,在Password文字框輸入您的密碼,然後單擊Login

  • Overview 頁簽下方,單擊 Export definitions,從Virtual host列表選擇All或者指定的Vhost名稱,然後單擊Download broker definitionsVirtual host列表參數說明如下:

  • All:表示匯出全部Vhost中繼資料。

  • Vhost名稱:表示匯出指定Vhost中繼資料。

  • 將下載的中繼資料檔案儲存至本地。

1.2 將中繼資料匯入雲訊息佇列 RabbitMQ 版

  • 登入雲訊息佇列 RabbitMQ 版控制台,在左側導覽列,單擊遷移上雲。

  • 在遷移上雲頁面頂部功能表列選擇地區,然後在頁面左上方單擊建立任務。

  • 在建立工作面板,設定相關參數,單擊確定

參數

描述

樣本值

執行個體

中繼資料要遷移到的目標執行個體名稱。

amqp-cn-7mz2cjgk****

匯入模式

  • 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對應的頁簽,查看失敗原因。

六、資料校正過程

中繼資料校正:

  • 進入 RabbitMQ 控制台,查看通過檢查遷移前後 vhost 的條數、Queue 的條數,對比源 RabbitMQ 控制台中繼資料,來校正中繼資料的一致性。

七、遷移注意事項

  • 由於自建 RabbitMQ和雲訊息佇列 RabbitMQ 版在許可權管控機制等方面存在差異,rabbit_version、users、permissions、parameters、global_parameters和policies中繼資料不支援匯入雲訊息佇列 RabbitMQ 版執行個體,在匯入時會被自動忽略。

  • 自建 RabbitMQ 的 Queue 名稱、Exchange 名稱、Bindings 等等支援特殊字元,雲上執行個體不支援包含特殊字元,如空格、$、#、%等。

  • 雲上執行個體不支援外掛程式,從自建RabbitMQ遷移上雲需評估已安裝外掛程式能力,是否通過其他方案代替。其中自建 RabbitMQ 通過外掛程式支援延遲訊息,雲上執行個體通過延遲訊息來支援(非外掛程式方式提供)。

  • 自建 RabbitMQ 預設訊息最大延遲是30分鐘(到期後刪除),雲上執行個體預設是5分鐘(根據規格不同時間也不同,遷移前確保線下最大延遲與雲上延遲保持一致。

  • 雲上執行個體支援失敗或逾時後重新投遞訊息,需要關註上雲後是否會觸發重複投遞,避免因重複投遞導致訊息激增。

  • 雲上執行個體的使用者密碼只支援根據 AK/SK 重建,無法定義為使用者已有的使用者密碼。