聯邦任務基於EventBridge事件流功能實現開源 Federation 外掛程式能力。通過配置聯邦任務,您實現中繼資料和訊息跨叢集同步和複製。
注意事項
當前雲上聯邦外掛程式功能僅支援聯邦交換器(Exchange Federation),即實現 Exchange 到 Exchange 的訊息同步。聯邦隊列(Queue Federation)功能待上線。
請確保目標端 RabbitMQ 執行個體的訊息大小限制至少與源端執行個體的訊息大小限制相同。如果目標端執行個體的訊息大小限制小於源端的限制,當訊息的大小超過目標端執行個體的限制時,將導致訊息路由失敗,進而導致訊息同步失敗。
費用說明
使用聯邦任務會產生額外費用,總費用由兩部分組成:
總費用 = 雲訊息佇列 RabbitMQ 版費用 + 事件匯流排 EventBridge 轉寄費用
前提條件
雲訊息佇列 RabbitMQ 版執行個體:源執行個體、源 Vhost 或目標執行個體、目標 Vhost 已建立並可用。
事件匯流排 EventBridge:已開通事件匯流排EventBridge並授權。
開源 RabbitMQ 叢集(如適用):若目的地組群為開源 RabbitMQ 叢集,請確認
rabbitmq_event_exchange外掛程式已開啟。具體操作,請參見:開啟 rabbitmq_event_exchange外掛程式。
建立聯邦任務
建立聯邦任務需依次完成以下步驟:建立任務、服務授權、配置叢集資訊、配置任務參數、驗證任務狀態。
步驟一:建立任務
在左側導覽列,選擇聯邦任務。
在聯邦任務頁面,單擊建立任務。
步驟二:服務授權
首次建立聯邦任務,將自動建立服務的關聯角色 AliyunServiceRoleForEventBridgeRabbitMQPlugin。具體資訊,請參見 服務關聯角色。
在"阿里雲服務授權 - 從訊息佇列 RabbitMQ 版讀取訊息"對話方塊中,認真閱讀提示資訊,單擊確認。
角色說明:AliyunServiceRoleForEventBridgeRabbitMQPlugin:事件匯流排 EventBridge 使用該角色實現 RabbitMQ 外掛程式功能。
步驟三:配置叢集資訊
在建立聯邦任務設定精靈頁面,配置聯邦任務的源叢集和目的地組群資訊。
叢集資訊配置參數
參數分類 | 參數名稱 | 解釋 | 樣本 |
開源 RabbitMQ 叢集 | URL | 開源 RabbitMQ 叢集的訪問地址,預設連接埠 5672 | 192.168.1.1 |
使用者名稱 | 開源 RabbitMQ 叢集的使用者名稱 | admin | |
密碼 | 開源 RabbitMQ 叢集的密碼 | pass***word | |
VPC | 開源 RabbitMQ 叢集所在的 VPC 網路識別碼 | vpc-2zehiozskjdbb3*** | |
交換器 | 開源 RabbitMQ 叢集所在的虛擬交換器 ID | vsw-m5hksicnqou22*** | |
安全性群組 | 開源 RabbitMQ 叢集所屬機器的安全性群組 ID | sg-2ca1jjhsdxciap*** | |
Virtual Host | 開源 RabbitMQ 叢集所部署的 Vhost | test-001 | |
雲訊息佇列 RabbitMQ | 執行個體 | 雲訊息佇列 RabbitMQ 的執行個體 ID | amqp-cn-s1q2ksbq*** |
Virtual Host | 雲訊息佇列 RabbitMQ 所部署的 Vhost | test-001 |
步驟四:配置任務參數
在任務參數頁面,配置任務配置資訊。
任務參數配置
參數分類 | 參數名稱 | 解釋 | 可選值/樣本 |
任務參數 | 任務名稱 | 聯邦任務名稱 | federation-task-001 |
順序性 | 聯邦任務在同步訊息時是否按照訊息順序: | - 並發 | |
聯邦 Exchange 參數 | Max hops | 一條訊息在聯邦任務中允許轉寄的最大跳數(hops),超過此限制後訊息將被丟棄 | 1 |
交換器運算式 | 用於匹配一個或多個交換器名稱的Regex,符合該運算式的交換器將會被同步到源叢集 | .* |
步驟五:驗證任務狀態
在聯邦任務頁面,可以看到已建立的任務,其狀態為啟動中。
待任務狀態更改為運行中,說明聯邦任務已啟動成功。
最佳實務
1. 合理規劃 Max hops
對於簡單的點對點同步情境,建議設定為 1
對於多層級聯的情境,根據實際拓撲結構設定合適的跳數
避免設定過大的跳數,防止訊息迴圈轉寄
2. 精確配置交換器運算式
使用精確的Regex匹配需要同步的交換器
避免使用過於寬泛的運算式(如
.*),以免同步不必要的交換器樣本:
匹配所有以 "order" 開頭的交換器:
^order.*匹配特定命名的交換器:
^(order|payment|inventory)$
3. 選擇合適的順序性模式
併發模式:適用於對訊息順序無嚴格要求的情境,效能更高
順序模式:適用於需要保證訊息處理順序的業務情境(如訂單處理、狀態流轉等)
4. 監控和警示
定期檢查聯邦任務運行狀態
配置訊息積壓警示
監控同步延遲指標,及時發現異常
5. 網路規劃
確保源叢集和目的地組群之間的網路延遲在可接受範圍內
跨地區同步時,考慮使用專線或 VPN 提高網路穩定性
合理規劃 VPC 和安全性群組規則,確保網路可達
常見問題
Q1:聯邦任務啟動後一直處於"啟動中"狀態怎麼辦?
請檢查以下幾點:
確認源叢集和目的地組群的網路連通性正常
確認叢集認證資訊(使用者名稱、密碼)正確
確認 EventBridge 服務已正確開通並授權
查看控制台是否有錯誤提示,根據提示進行排查
Q2:訊息同步出現延遲或丟失如何處理?
延遲問題:檢查網路頻寬使用方式,考慮最佳化訊息大小或增加頻寬
丟失問題:確認目標端執行個體的訊息大小限制不小於源端;檢查 Max hops 設定是否合理;查看交換器運算式是否正確匹配目標交換器
Q3:如何修改已建立的聯邦任務?
目前聯邦任務建立後不支援直接修改。如需調整配置,建議刪除原有任務後重新建立。
Q4:聯邦任務支援雙向同步嗎?
聯邦任務是單向同步的。如需實現雙向同步,需要分別建立兩個方向的聯邦任務。