更新时间:2024-10-25 GMT+08:00

创建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

  1. 登录管理控制台。
  2. 在管理控制台左上角单击,选择区域。

    此处请选择RabbitMQ实例所在的区域。

  3. 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务RabbitMQ版”,进入分布式消息服务RabbitMQ专享版页面。
  4. 单击实例名称,进入实例详情页面。
  5. 在左侧导航栏选择“Vhost列表”,进入Vhost列表页面。
  6. 单击Vhost名称,进入Vhost详情页。
  7. 在“Exchange”页签中,单击“创建Exchange”,弹出“创建Exchange”对话框。
  8. 参考表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。

  9. 单击“确定”,完成Exchange的创建。

    在“Exchange”页签中,查看新创建的Exchange。