本文介绍如何在消息队列RabbitMQ版控制台创建Exchange、查看统计数据、绑定Queue、绑定Exchange、被Exchange绑定以及发送消息。

背景信息

Producer将消息发送到Exchange,由Exchange将消息路由到一个或多个Queue中(或者丢弃)。Exchange根据Routing Key和Binding Key将消息路由到Queue。不同类型的Exchange的路由规则不同。更多信息,请参见Exchange

创建Exchange

  1. 登录消息队列RabbitMQ版控制台,然后在左侧导航栏选择实例列表
  2. 实例列表页面的顶部菜单栏选择地域,然后在实例列表中,单击目标实例名称。
  3. 在左侧导航栏,单击Exchange 列表
  4. Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,然后单击创建 Exchange
  5. 创建 Exchange面板,输入Exchange名称,选择Exchange类型,设置是否为Internal类型,然后单击确定
    参数 描述
    Exchange 名称 Exchange名称。以amq.开头的为保留字段,因此不能使用。例如:amq.test。
    类型 Exchange类型。取值:
    • direct:该类型路由规则会将消息路由到Binding Key与Routing Key完全匹配的Queue中。
    • topic:该类型与direct类型相似。Topic Exchange路由规则没有Direct Exchange那么严格, 支持模糊匹配和多条件匹配,即该类型Exchange使用Routing Key模式匹配和字符串比较的方式将消息路由至绑定的Queue中。
    • fanout:该类型路由规则非常简单,会把所有发送到该Exchange的消息路由到所有与它绑定的Queue中,相当于广播功能。
    • headers:该类型与direct类型相似。Headers Exchange使用Headers属性代替Routing Key进行路由匹配,在绑定Headers Exchange和Queue时,设置绑定属性的键值对;在向Headers Exchange发送消息时,设置消息的Headers属性键值对,使用消息Headers属性键值对和绑定属性键值对比较的方式将消息路由至绑定的Queue。
    • x-jms-topic:适用于通过消息队列RabbitMQ版提供的JMS接口接入消息队列RabbitMQ版的JMS应用,该类型路由规则会将消息路由到Binding Key与Routing Key通配符匹配的Queue中。更多信息,请参见JMS概述
    • x-delayed-message:通过声明该类Exchange,您可以自定义消息的Header属性x-delay来指定消息延时投递的时间段,单位为毫秒。消息将在x-delay中定义的时间段后,根据路由规则被投递到对应的Queue。路由规则取决于x-delayed-type中指定的Exchange路由类型。
    • x-consistent-hash:x-consistent-hash Exchange支持将Routing Key或Header值进行Hash计算,使用一致性哈希算法将消息路由到不同的Queue上。
    x-delayed-type 当Exchange类型为x-delayed-message时,需要配置此参数,以指定Exchange的路由类型。
    哈希取值 当Exchange类型为x-consistent-hash时,需要配置此参数,以指定Hash计算的输入值为哪种类型。取值如下:
    • RoutingKey
    • Header 值:使用Header方式作为Hash计算输入值时,您需要定义hash-header参数的取值。
    hash-header 当Exchange类型为x-consistent-hash哈希取值Header 值时,需要配置此参数,作为指定Hash计算的输入值。
    Internal 是否为Internal类型,默认值为。取值:
    • :内建类型,用于Exchange和Exchange之间的绑定。
    • :非内建类型,用于Exchange和Queue之间的绑定。

查看统计数据

您可以查看各种指标数据,帮助您及时发现和定位问题。

  1. Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,找到目标Exchange。
  2. 您可以根据需要选择查看统计数据。
    • 查看目标Exchange的统计数据:单击目标Exchange,或在其右侧操作列,单击详情,在Exchange 详情页面,单击Dashboard页签。
    • 查看目标Exchange、所属Vhost和实例等的统计数据:在目标Exchange右侧操作列,单击Dashboard

      您也可以单击目标Exchange,在其右侧操作列,单击详情,在Exchange 详情页面右上角单击Dashboard

    实例类型不同,统计数据不同。具体如下:

    • 普通版/专业版:通过云监控提供指标监控数据。关于云监控的详细信息和指标信息,请参见监控指标
      说明 消息队列RabbitMQ版不再支持开通新的普通版实例,此处指已有的普通版实例。
    • 企业版和铂金版:支持查看基于阿里云ARMS Prometheus监控服务和Grafana的指标信息。关于Dashboard详细信息和指标信息,请参见Dashboard

绑定Queue

为Exchange绑定Queue,从而告诉Exchange消息应该被路由到哪些Queue中。

  1. Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost。然后,找到目标Exchange,在其右侧操作列,单击绑定信息
  2. Exchange 详情页面的绑定关系页签,单击添加绑定
  3. 添加绑定面板,选择绑定目标类型Queue,选择绑定目标,设置Binding Key,然后单击确定
    说明
    • 若绑定的Exchange的类型为x-consistent-hash时,Routing Key表示绑定的Queue的权重,只能设置为整数,取值范围为[1~20]。
    • 当存在重复绑定时,只有第一个符合要求的绑定关系生效。
    • 若需要修改已绑定Queue的权重,请先删除已有的绑定关系再重新添加绑定。
    添加绑定

绑定Exchange

为某个Exchange绑定另一个Exchange,从而让消息根据路由规则从被绑定的Exchange转发到该Exchange。

  1. Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost。然后,找到目标Exchange,在其右侧操作列,单击绑定信息
  2. Exchange 详情页面的绑定关系页签,单击添加绑定
  3. 添加绑定面板,选择绑定目标类型Exchange,选择绑定目标,设置Binding Key,单击确定
    添加Exchange绑定

被Exchange绑定

让某个Exchange被另一个Exchange绑定,从而让消息根据路由规则从该Exchange转发到另一个Exchange。

  1. Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,找到目标Exchange,在其右侧操作列,选择更多 > 被绑定信息
  2. Exchange 详情页面,选择被绑定关系页签,然后单击添加被绑定
  3. 添加被绑定面板,选择源Exchange,在Binding Key文本框输入Binding Key,绑定目标类型默认为Exchange,目标Exchange默认为此Exchange,单击确定
    添加被绑定

发送消息

为Exchange添加绑定或被绑定关系后,可直接在控制台发送消息,将消息从Exchange发送到绑定的Queue中,或从被绑定的Exchange发送到源Exchange中。

  1. Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,找到目标Exchange。
  2. Exchange 详情页面,选择绑定关系被绑定关系页签。
  3. 在绑定关系或被绑定关系列表中,选择指定的绑定关系,在其操作列,单击发送消息
  4. 在弹出的发送消息面板中输入messageIdmessageBody,然后单击确定

删除Exchange

警告
  • 删除指定Exchange后,生产者将无法将消息发送到该Exchange,也无法由当前Exchange路由到一个或多个Queue中,请您谨慎执行。
  • headersx-jms-topic类型的Exchange不支持删除。
  • Vhost下的3个内置Exchange(amq.direct、amq.topic和amq.fanout)不支持删除。
  1. Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,根据需要选择如下任意一种方式删除Exchange:
    • 删除单个Exchange:找到需删除的Exchange,在其右侧操作列,选择更多 > 删除

      您也可以在目标Exchange名称处单击或其右侧操作列,单击详情,在Exchange 详情页面右上角单击删除

    • 删除多个Exchange:选中要删除的Exchange,单击Exchange列表下方的批量删除
  2. 提示对话框,认真阅读提示信息,单击确认
    Exchange 列表页面,您已看不到刚才删除的Exchange。