操作场景
生产者将消息发送到 Exchange 中,Exchange 根据消息的属性或内容将消息路由到一个或多个 Queue 中(或者丢弃),Consumer 从 Queue 中拉取消息进行消费。
该任务指导您使用消息队列 TDMQ RabbitMQ 版时在控制台上创建,删除和查询 Exchange。
前提条件
操作步骤
创建 Exchange
1. 登录 RabbitMQ 控制台。
2. 在左侧导航栏选择集群管理 > Exchange 页签,选择 Vhost 后,单击新建进入创建 Exchange 页面。
3. 在新建 Exchange 对话框中,填写以下信息。
Exchange 名称:填写 Exchange 名称(创建后不可修改),1-64个字符,只能包含字母、数字、“.”、“-”及“_”
路由类型:选择路由类型,包括:Direct、Fanout、Topic 和 headers,路由类型选择后不可修改(关于路由类型的详细说明,请参见 Exchange)
Direct:该类型 Exchange 会把消息路由到 RoutingKey 和 BindingKey 完全匹配的 Queue 中
Fanout:该类型 Exchange 会将消息路由到所有与其绑定的 Queue 中
Topic:该类型 Exchange 支持多条件匹配和模糊匹配,即使用 Routing Key 模式匹配和字符串比较的方式将消息路由至与其绑定的 Queue 中。
Headers:与 Routing Key 无关,匹配机制是匹配消息中的 Headers 属性信息。在绑定 Queue 与 Headers Exchange 之前声明一个map键值对,通过这个 map 对象实现消息队列和交换机的绑定。当消息发送到 RabbitMQ 时会取到该消息的 Headers 与 Exchange 绑定时指定的键值对进行匹配;如果完全匹配则消息会路由到该队列,否则不会路由到该队列。
X-Delayed-Message:这是一种自定义的 Exchange 类型,用于实现延迟消息传递。当将消息发送到 X-Delayed-Message 类型的交换机时,可以为消息设置一个延迟时间。RabbitMQ 会在延迟时间结束后,将消息路由到与其绑定的队列中。这种类型的交换机允许您在发送消息时控制消息何时被传递给消费者,从而实现消息的定时和延迟处理。创建此类型 Exchange 方法请看下方说明。
Durable:如果设置为 true,该Exchange在服务重启后仍然存在;如果设置为false,该 Exchange 在服务重启后消失,需要重建。
AutoDelete:如果设置为 true,当最后一个绑定到该 Exchange 上的队列被删除后,自动删除该 Exchange。
Internal:如果设置为 true,则该 Exchange 不能直接被 Producer 使用,而只能与其它 Exchange 绑定。
Exchange 说明:填写 Exchange 的说明信息,最多128个字符。
添加备用 Exchange:可选填,默认不使用备用 Exchange。发送到主 Exchange 的消息如果无法被路由,会被发送到此处指定的备用 Exchange。
说明:
控制台后续将会支持 X-Delayed-Message 路由类型,如有使用需要,请先在开源控制台 - Exchanges 中创建(登录访问 RabbitMQ 开源控制台的操作步骤详情可参见 访问原生控制台)。在创建时,Arguments 需要指定 x-delayed-type,示例如下:
需要注意的是,X-Delayed-Message 类型并不是 RabbitMQ 的内置类型,需要通过开启插件 rabbitmq_delayed_message_exchange 来实现,详情请参见 插件管理。
4. 单击提交,在 Exchange 列表中即可看见创建好的 Exchange。
编辑 Exchange
1. 在 Exchange 列表中,找到需要编辑的 Exchange ,单击操作栏中的编辑。
2. 在弹出的对话框中可以对 Exchange 的说明进行编辑。
3. 单击提交即完成对 Exchange 的编辑。
删除 Exchange
1. 在 Exchange 列表中,找到需要删除的 Exchange ,单击操作列中的删除。
2. 在弹出的提示框中,单击删除,完成删除。
注意:
Exchange 删除后,该 Exchange 下的所有配置将会被清空,且无法恢复。