Exchange管理

更新时间:
重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

Producer将消息发送到Exchange,由Exchange将消息路由到一个或多个Queue中(或者丢弃)。Exchange根据Routing Key将消息路由到Queue。不同类型的Exchange的路由规则不同。本文介绍如何在云消息队列 RabbitMQ 版控制台创建Exchange、查看统计数据、绑定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:该类型的路由规则会将消息路由到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-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 列表页面,选择指定Exchange,在其操作列单击详情

  2. Exchange 详情页面单击监控指标Dashboard页签。

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

    • 企业版和铂金版:支持查看基于阿里云ARMS Prometheus监控服务和Grafana的指标信息。关于Dashboard详细信息和指标信息,请参见Dashboard

    • 普通版/专业版:通过云监控提供指标监控数据。关于云监控的详细信息和指标信息,请参见监控指标

      说明

      云消息队列 RabbitMQ 版不再支持开通新的普通版实例,此处指存量的普通版实例。

绑定Queue

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

  1. Exchange 列表页面,选择指定Exchange,在其操作列单击绑定信息

  2. Exchange 详情页面的绑定关系页签,单击添加绑定

  3. 添加绑定面板,选择绑定目标类型Queue,选择绑定目标,设置Routing Key,然后单击确定

    说明
    • 若绑定的Exchange的类型为x-consistent-hash时,Routing Key表示绑定的Queue的权重,只能设置为整数,取值范围为[1~20]。

    • 当存在重复绑定时,只有第一个符合要求的绑定关系生效。

    • 若需要修改已绑定Queue的权重,请先删除已有的绑定关系再重新添加绑定。

    添加绑定

绑定Exchange

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

  1. Exchange 列表页面,选择指定Exchange,在其操作列单击绑定信息

  2. Exchange 详情页面的绑定关系页签,单击添加绑定

  3. 添加绑定面板,选择绑定目标类型Exchange,选择绑定目标,设置Routing Key,单击确定

    添加Exchange绑定

被Exchange绑定

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

  1. Exchange 列表页面,选择指定Exchange,在其操作列单击详情

  2. Exchange 详情页面,选择被绑定关系页签,然后单击添加被绑定

  3. 添加被绑定面板,选择源Exchange,在Routing Key文本框输入Routing Key,绑定目标类型默认为Exchange,目标Exchange默认为此Exchange,单击确定

    添加被绑定

发送消息

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

  1. Exchange 列表页面,选择指定Exchange,在其操作列单击详情

  2. Exchange 详情页面,选择绑定关系被绑定关系页签。

  3. 在绑定关系或被绑定关系列表中,选择指定的绑定关系,在其操作列,单击发送消息

  4. 在弹出的发送消息面板中输入messageIdmessageBody,然后单击确定

删除Exchange

警告
  • 删除指定Exchange后,生产者将无法将消息发送到该Exchange,也无法由当前Exchange路由到一个或多个Queue中,请您谨慎执行。

  • headers类型的Exchange不支持删除。

  • Vhost下的3个内置Exchange(amq.direct、amq.topic和amq.fanout)不支持删除。

  1. Exchange 列表页面,单击指定Exchange,在Exchange详情页面的右上角单击删除

  2. 提示对话框,认真阅读提示信息,单击确认

相关文档

更多与Exchange相关的信息,请参见Exchange