本文介绍什么是全球消息路由以及如何管理全球消息路由任务,以便您按需同步消息,实现不同实例、不同Vhost间的消息路由。

背景信息

全球消息路由的功能和使用方式和开源Shovel插件保持一致,支持不同实例和Vhost间的Queue到Queue、Queue到Exchange的消息转发。在此基础上,除了可以本地域间消息转发,也可以支持跨地域消息转发。

注意事项

  • 使用全球消息路由功能会带来额外的费用,计费说明如下:

    总费用 = 云消息队列 RabbitMQ 版费用 + 事件总线EventBridge转发费用。云消息队列 RabbitMQ 版计费详情,请参见云消息队列 RabbitMQ 版计费概述事件总线EventBridge计费详情,请参见事件总线EventBridge计费说明

  • 全球消息路由功能不支持传递路由,例如实例A到实例B再到实例C,实例A的消息不会经过实例B再路由到实例C,如有需要请直接创建实例A到实例C的路由。
  • 鉴于消息同步的消息量以及网络带宽瓶颈,消息同步可能会产生一定的时间延迟。

前提条件

创建全球消息路由任务

  1. 登录云消息队列 RabbitMQ 版控制台,然后在左侧导航栏,单击全球消息路由
  2. 全球消息路由页面的左上方,单击创建任务
  3. 阿里云服务授权 - 从消息队列RabbitMQ版读取消息对话框,认真阅读提示信息,单击确认
    首次创建全球消息路由任务,将自动创建服务的关联角色AliyunServiceRoleForEventBridgeSourceRabbitMQ与AliyunServiceRoleForEventBridgeSendToRabbitMQ。具体信息,请参见服务关联角色
    说明
    • AliyunServiceRoleForEventBridgeSourceRabbitMQ事件总线EventBridge使用该角色接收源端实例发送的消息。
    • AliyunServiceRoleForEventBridgeSendToRabbitMQ事件总线EventBridge使用该角色转发消息给目标端实例。
  4. 创建消息路由任务配置向导页面,配置消息路由的源端和目标端信息。
    1. 基本信息页面,在名称文本框给任务命名,在描述文本框对任务进行简要描述。
    2. 源和目标页面,配置消息路由的源端和目标端信息。
      参数解释示例
      同步源信息产品类型消息路由源端的产品类型,固定为云消息队列 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
    3. 创建启动页面,确认消息路由的配置信息,单击创建并启动
    全球消息路由页面,可以看到已创建的任务。其状态服务中

相关操作

您可以查看消息路由任务详情、停用、编辑和删除任务,对任务进行管理。

  1. 全球消息路由页面,在搜索框根据任务名称搜索任务。
  2. 找到目标任务,在操作列,您可以根据实际需求对任务进行操作。
    • 单击详情,您可以查看路由任务配置的详情信息。
    • 单击停用,您可以停用路由任务。
    • 单击编辑,您可以更改路由任务的配置信息。
    • 单击删除,您可以清理路由任务。