全球訊息路由的功能和使用方式和開源Shovel外掛程式保持一致,支援不同執行個體和Vhost間的Queue到Queue、Queue到Exchange的訊息轉寄。在此基礎上,除了可以本地區間訊息轉寄,也可以支援跨地區訊息轉寄,以便您按需同步訊息,實現不同執行個體、不同Vhost間的訊息路由。
注意事項
額外的費用支出:總費用 = 雲訊息佇列 RabbitMQ 版費用 + 事件匯流排EventBridge轉寄費用+CEN流量費用(只有跨地區轉寄才會產生CEN費用)。雲訊息佇列 RabbitMQ 版計費詳情,請參見計費概述;事件匯流排EventBridge計費詳情,請參見計費說明。雲企業網CEN計費詳情,請參見計費說明。
不支援傳遞路由:例如執行個體A到執行個體B再到執行個體C,執行個體A的訊息不會經過執行個體B再路由到執行個體C,如有需要請直接建立執行個體A到執行個體C的路由。
訊息同步延遲:鑒於訊息同步的訊息量以及網路頻寬瓶頸,訊息同步可能會產生一定的時間延遲。
訊息大小限制:請確保目標端RabbitMQ執行個體的訊息大小限制至少與源端執行個體的訊息大小限制相同。如果目標端執行個體的訊息大小限制小於源端的限制,當訊息的大小超過目標端執行個體的限制時,將導致訊息路由失敗,進而導致訊息丟失。
前提條件
雲訊息佇列 RabbitMQ 版
源執行個體、源Vhost、源Exchange、源Queue以及目標執行個體、目標Vhost、目標Exchange、目標Queue已建立並可用。具體操作,請參見:
事件匯流排EventBridge
建立全球訊息路由任務
登入雲訊息佇列 RabbitMQ 版控制台,然後在左側導覽列,單擊全球消息路由。
在全球消息路由頁面單擊创建任务。
(可選)在阿里雲服務授權 - 從訊息佇列RabbitMQ版讀取訊息對話方塊,認真閱讀提示資訊,單擊確認。
首次建立全球訊息路由任務,將自動建立服務的關聯角色AliyunServiceRoleForEventBridgeSourceRabbitMQ與AliyunServiceRoleForEventBridgeSendToRabbitMQ。具體資訊,請參見服務關聯角色。
說明AliyunServiceRoleForEventBridgeSourceRabbitMQ:事件匯流排EventBridge使用該角色接收源端執行個體發送的訊息。
AliyunServiceRoleForEventBridgeSendToRabbitMQ:事件匯流排EventBridge使用該角色轉寄訊息給目標端執行個體。
在创建消息路由任务設定精靈頁面,配置訊息路由的源端和目標端資訊。
在基本信息頁面,填寫任務名稱和描述,然後單擊下一步。
在源和目标頁面,配置訊息路由的源端和目標端資訊,然後單擊下一步。
參數
解釋
樣本
同步源信息
产品类型
訊息路由源端的產品類型,固定為雲訊息佇列 RabbitMQ 版。
雲訊息佇列 RabbitMQ 版
地域
源端產品的執行個體所在的地區。
華南1(深圳)
实例
源端產品的執行個體ID。
amqp-cn-i7m2a8bq****
Vhost
源端產品的執行個體所部署的Vhost。
test-001
Queue
源端產品執行個體的Queue。
test-001-q
同步目标信息
产品类型
訊息路由目標端的產品類型,固定為雲訊息佇列 RabbitMQ 版。
雲訊息佇列 RabbitMQ 版
地域
目標端產品的執行個體所在的地區。
華南1(深圳)
实例
目標端產品的執行個體ID。
amqp-cn-7pp2a85q****
Vhost
目標端產品的執行個體所部署的Vhost。
test-routing
目标类型
訊息路由的目標類型。取值如下:
Queue:訊息路由至目標執行個體的Queue中。
Exchange:訊息路由至目標執行個體的Exchange。
說明目标类型為Exchange時,請確保目標Exchange有對應綁定的Queue,否則將導致路由轉寄到此Exchange的訊息沒有儲存的Queue而丟失。
test-routing-ex
RoutingKey
訊息路由的Routing Key。當目标类型為Exchange時,該參數生效,取值如下:
不设置:使用訊息原有的Routing key發送到目標Exchange。
设置:使用當前設定的Routing key發送到目標Exchange。
test
在创建启动頁面,確認訊息路由的配置資訊,單擊创建并启动。
在全球消息路由頁面,可以看到已建立的任務。其状态為运行中。
相關文檔
關於開源Shovel外掛程式的更多資訊,請參見Shovel Plugin。