创建RabbitMQ Exchange
Exchange用于接收、分配消息。生产者向分布式消息服务RabbitMQ版发送消息时,不会直接将消息发送到Queue,而是先将消息发送到Exchange中,Exchange根据路由键查找Queue,如果查找到,将消息存放到Queue中,如果未查找到,将消息丢弃。
本章节指导如何在控制台创建Exchange。RabbitMQ 3.x.x版本在创建Vhost后会创建7个默认Exchange:(AMQP default)、amq.direct、amq.fanout、amq.headers、amq.match、amq.rabbitmq.trace、amq.topic。
前提条件
已创建Vhost。
创建RabbitMQ Exchange
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
此处请选择RabbitMQ实例所在的区域。
- 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务RabbitMQ版”,进入分布式消息服务RabbitMQ专享版页面。
- 单击实例名称,进入实例详情页面。
- 在左侧导航栏选择“Vhost列表”,进入Vhost列表页面。
- 单击Vhost名称,进入Vhost详情页。
- 在“Exchange”页签中,单击“创建Exchange”,弹出“创建Exchange”对话框。
- 参考表1,设置Exchange名称和配置信息。
表1 Exchange参数说明 参数
说明
名称
系统为您自动生成了Exchange名称,您可以根据需要修改。Exchange名称需要符合以下规则:长度为3~128个字符,只能由英文字母、数字、百分号、竖线、中划线、下划线、斜杠、反斜杠组成。
创建Exchange后不能修改名称。
类型
选择路由类型。关于Exchange类型更详细的介绍,请参见Exchange类型介绍。
- direct:该类型Exchange会将消息路由到Routing Key完全匹配的Queue中。
- fanout:该类型Exchange会将消息路由到所有与其绑定的Queue中。
- topic:该类型Exchange将Routing Key进行通配符匹配,然后将消息路由到匹配成功的Queue中。
- headers:该类型Exchange与Routing Key无关,而与消息中的Headers属性信息相关。Exchange根据消息中的Headers属性键值对和绑定的属性键值对进行匹配,根据匹配情况路由消息。
- x-delayed-message:该类型Exchange的作用为延迟投递消息,根据Exchange类型的路由规则路由消息。
- x-consistent-hash:该类型Exchange会根据Routing Key计算出一个hash值,按照hash值将消息路由到对应的Queue中。
Exchange类型
“类型”设置为“x-delayed-message”时,页面显示此参数。
x-delayed-message Exchange根据设定的Exchange类型的路由规则路由消息。
- direct:该类型Exchange会将消息路由到Routing Key完全匹配的Queue中。
- fanout:该类型Exchange会将消息路由到所有与其绑定的Queue中。
- topic:该类型Exchange将Routing Key进行通配符匹配,然后将消息路由到匹配成功的Queue中。
- headers:该类型Exchange与Routing Key无关,而与消息中的Headers属性信息相关。Exchange根据消息中的Headers属性键值对和绑定的属性键值对进行匹配,根据匹配情况路由消息。
自动删除
是否开启自动删除Exchange。
- 开启:当最后一个绑定的Queue与Exchange解除绑定后,该Exchange会被自动删除。
- 不开启:当最后一个绑定的Queue与Exchange解除绑定后,不会删除该Exchange。
持久化
RabbitMQ 3.x.x版本需要设置此参数。RabbitMQ AMQP-0-9-1版本Exchange默认开启持久化。
是否开启Exchange持久化。
- 开启:该Exchange在服务器重启后仍然存在。
- 不开启:该Exchange在服务器重启后会被删除,需要重新创建。
Internal
仅RabbitMQ 3.x.x版本包含此参数。
Exchange是否为RabbitMQ内部使用。
- 是:该Exchange只能绑定其他Exchange,不能绑定Queue。
- 否:该Exchange可以绑定Exchange和Queue。
- 单击“确定”,完成Exchange的创建。
在“Exchange”页签中,查看新创建的Exchange。