本文介绍如何在消息队列RabbitMQ版控制台创建Exchange、查看统计数据、绑定Queue、绑定Exchange、被Exchange绑定以及发送消息。
背景信息
Producer将消息发送到Exchange,由Exchange将消息路由到一个或多个Queue中(或者丢弃)。Exchange根据Routing Key和Binding
Key将消息路由到Queue。不同类型的Exchange的路由规则不同。更多信息,请参见Exchange。
创建Exchange
- 登录消息队列RabbitMQ版控制台,然后在左侧导航栏选择实例列表。
- 在实例列表页面的顶部菜单栏选择地域,然后在实例列表中,单击目标实例名称。
- 在左侧导航栏,单击Exchange 列表。
- 在Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,然后单击创建 Exchange。
- 在创建 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之间的绑定。
|
查看统计数据
您可以查看各种指标数据,帮助您及时发现和定位问题。
- 在Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,找到目标Exchange。
- 您可以根据需要选择查看统计数据。
实例类型不同,统计数据不同。具体如下:
- 普通版/专业版:通过云监控提供指标监控数据。关于云监控的详细信息和指标信息,请参见监控指标。
说明 消息队列RabbitMQ版不再支持开通新的普通版实例,此处指已有的普通版实例。
- 企业版和铂金版:支持查看基于阿里云ARMS Prometheus监控服务和Grafana的指标信息。关于Dashboard详细信息和指标信息,请参见Dashboard。
绑定Queue
为Exchange绑定Queue,从而告诉Exchange消息应该被路由到哪些Queue中。
- 在Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost。然后,找到目标Exchange,在其右侧操作列,单击绑定信息。
- 在Exchange 详情页面的绑定关系页签,单击添加绑定。
- 在添加绑定面板,选择绑定目标类型为Queue,选择绑定目标,设置Binding Key,然后单击确定。
说明
- 若绑定的Exchange的类型为x-consistent-hash时,Routing Key表示绑定的Queue的权重,只能设置为整数,取值范围为[1~20]。
- 当存在重复绑定时,只有第一个符合要求的绑定关系生效。
- 若需要修改已绑定Queue的权重,请先删除已有的绑定关系再重新添加绑定。

绑定Exchange
为某个Exchange绑定另一个Exchange,从而让消息根据路由规则从被绑定的Exchange转发到该Exchange。
- 在Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost。然后,找到目标Exchange,在其右侧操作列,单击绑定信息。
- 在Exchange 详情页面的绑定关系页签,单击添加绑定。
- 在添加绑定面板,选择绑定目标类型为Exchange,选择绑定目标,设置Binding Key,单击确定。
被Exchange绑定
让某个Exchange被另一个Exchange绑定,从而让消息根据路由规则从该Exchange转发到另一个Exchange。
- 在Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,找到目标Exchange,在其右侧操作列,选择。
- 在Exchange 详情页面,选择被绑定关系页签,然后单击添加被绑定。
- 在添加被绑定面板,选择源Exchange,在Binding Key文本框输入Binding Key,绑定目标类型默认为Exchange,目标Exchange默认为此Exchange,单击确定。
发送消息
为Exchange添加绑定或被绑定关系后,可直接在控制台发送消息,将消息从Exchange发送到绑定的Queue中,或从被绑定的Exchange发送到源Exchange中。
- 在Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,找到目标Exchange。
- 在Exchange 详情页面,选择绑定关系或被绑定关系页签。
- 在绑定关系或被绑定关系列表中,选择指定的绑定关系,在其操作列,单击发送消息。
- 在弹出的发送消息面板中输入messageId和messageBody,然后单击确定。
删除Exchange
警告
- 删除指定Exchange后,生产者将无法将消息发送到该Exchange,也无法由当前Exchange路由到一个或多个Queue中,请您谨慎执行。
- headers和x-jms-topic类型的Exchange不支持删除。
- Vhost下的3个内置Exchange(amq.direct、amq.topic和amq.fanout)不支持删除。
- 在Exchange 列表页面,在当前 Vhost右侧的切换下拉列表中,选择Vhost,根据需要选择如下任意一种方式删除Exchange:
- 在提示对话框,认真阅读提示信息,单击确认。
在Exchange 列表页面,您已看不到刚才删除的Exchange。