绑定RabbitMQ Exchange
绑定Exchange是将Exchange和Exchange/Queue关联起来,在生产者发送消息到Exchange后,Exchange根据路由规则将消息发送到与其关联的Exchange/Queue中。
本章节指导如何在控制台绑定Exchange,支持为Exchange绑定目标Exchange,或者为Queue绑定源Exchange。一个Exchange可以绑定多个目标Exchange,一个Queue可以绑定多个源Exchange。
约束与限制
- RabbitMQ 3.x.x版本中,名为“(AMQP default)”的Exchange不能绑定任何Exchange。
- RabbitMQ AMQP-0-9-1版本的Exchange不支持绑定Exchange,只支持绑定Queue。
- “Internal”为“是”的Exchange只能绑定Exchange,不能绑定Queue。
前提条件
为Exchange绑定目标Exchange
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
此处请选择RabbitMQ实例所在的区域。
- 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务RabbitMQ版”,进入分布式消息服务RabbitMQ专享版页面。
- 单击实例名称,进入实例详情页面。
- 在左侧导航栏选择“Vhost列表”,进入Vhost列表页面。
- 单击Vhost名称,进入Vhost详情页。
- 在“Exchange”页签中,在待绑定的Exchange后,单击“绑定”,弹出“绑定”页面。
- 单击“添加绑定”,弹出“添加绑定”对话框。
- 参考表1,设置绑定参数。
表1 绑定参数说明 参数
说明
类型
仅RabbitMQ 3.x.x版本包含此参数,RabbitMQ AMQP-0-9-1版本只支持绑定Queue。
选择Exchange绑定的类型。绑定Exchange时选择“Exchange”。
绑定目标
在下拉框中选择需要绑定的目标Exchange。
Routing Key
设置Key值字符串,用于告知Exchange应该将消息投递到哪些目标Exchange中。
- Direct Exchange和Topic Exchange需要设置Routing Key,Exchange会将消息路由到Routing Key匹配成功的目标Exchange中。如果不设置Routing Key,Exchange会将消息路由到所有与它绑定的目标Exchange中。
- x-consistent-hash Exchange需要设置Routing Key,Routing Key表示Queue的权重。数值越大,Queue的权重越大,分发消息时接收到的消息越多。
- Fanout Exchange和Header Exchange无需设置Routing Key,Routing Key对于这两种Exchange不起作用。
- 单击“确定”,完成Exchange的绑定。
在“绑定”页面,查看新绑定的Exchange。
为Queue绑定源Exchange
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
此处请选择RabbitMQ实例所在的区域。
- 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务RabbitMQ版”,进入分布式消息服务RabbitMQ专享版页面。
- 单击实例名称,进入实例详情页面。
- 在左侧导航栏选择“Vhost列表”,进入Vhost列表页面。
- 单击Vhost名称,进入Vhost详情页。
- 在“Queue”页签的待绑定的Queue所在行,单击“查看详情”,弹出“查看详情”页面。
- 在“绑定信息”页签,单击“添加绑定”,弹出“添加绑定”对话框。
- 参考表2,设置绑定参数。
表2 绑定参数说明 参数
说明
绑定源端
在下拉框中选择需要绑定的Exchange。
Routing Key
设置Key值字符串,用于告知Exchange应该将消息投递到哪些Queue中。
- Direct Exchange和Topic Exchange需要设置Routing Key,Exchange会将消息路由到Routing Key匹配成功的Queue中。如果不设置Routing Key,Exchange会将消息路由到所有与它绑定的Queue中。
- x-consistent-hash Exchange需要设置Routing Key,Routing Key表示Queue的权重。数值越大,Queue的权重越大,分发消息时接收到的消息越多。
- Fanout Exchange和Header Exchange无需设置Routing Key,Routing Key对于这两种Exchange不起作用。
- 单击“确定”,完成Exchange的绑定。
在“绑定信息”页签,查看新绑定的Exchange。