上云无忧 > 文档中心 > 腾讯云消息队列 RabbitMQ 版中的Exchange概念解析
消息队列 RabbitMQ 版
腾讯云消息队列 RabbitMQ 版中的Exchange概念解析

文档简介:
本文介绍 TDMQ RabbitMQ 版中 Exchange 的概念、类型和使用方式。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

概念

Exchange 是 TDMQ RabbitMQ 版的消息路由代理,Producer 将消息发送到 Exchange 中,Exchange 根据消息的属性或内容将消息路由到一个或多个 Queue 中(或者丢弃),Consumer 从 Queue 中拉取消息进行消费。
TDMQ RabbitMQ 版目前支持 Direct、Fanout、Topic 和 Header 四种类型的 Exchange。
Direct:该类型 Exchange 会把消息路由到 RoutingKey 和 BindingKey 完全匹配的 Queue 中。
Fanout:该类型 Exchange 会将消息路由到所有与其绑定的 Queue 中。
Topic:该类型 Exchange 支持多条件匹配和模糊匹配,即使用 RoutingKey 模式匹配和字符串比较的方式将消息路由至与其绑定的Queue中。
Header:该类型 Exchange 与 Routing Key 无关,匹配机制是匹配消息中的 Headers 属性信息。在绑定 Queue 与 Headers Exchange 之前声明一个map键值对,通过这个map对象实现消息队列和交换机的绑定。

Direct Exchange

路由规则:Direct Exchange 会把消息路由到 RoutingKey 和 BindingKey 完全匹配的 Queue 中。
应用场景:该类型 Exchange 适用于通过简单字符标识符过滤消息的场景,常用于单播路由。
使用示例

Message
Routing Key
Binding Key
Queue
Message 1
bizA
bizA
Queue 1
Message 2
bizB
bizB
Queue 2

Fanout Exchange

路由规则: 该类型 Exchange 会将消息路由到所有与其绑定的 Queue 中。
应用场景:该类型 Exchange 适用于广播消息的场景。例如分发系统使用 Fanout Exchange 来广播各种状态和配置更新。
使用示例

Message
Routing Key
Binding Key
Queue
Message 1
bazA.wechat_pay
bazA.credit,bazB.credit
Queue 1,Queue 2
Message 2
bazA.alipay
bazA.credit,bazB.credit
Queue 1,Queue 2
Message 3
bazC.credit
bazA.credit,bazB.credit
Queue 1,Queue 2

Topic Exchange

路由规则:该类型 Exchange 支持多条件匹配和模糊匹配,即使用 Routing Key 模式匹配和字符串比较的方式将消息路由至与其绑定的 Queue 中。
Topic Exchange 支持的通配符包括星号“*”和井号“#”。
星号“*”代表一个英文单词,例如 sh。
井号“#”代表零个、一个或多个英文单词,单词间用英文句号"."分隔,例如 cn.hz。
应用场景
该类型 Exchange 常用于多播路由,例如需要使用 Topic Exchange 分发有关于特定地理位置的数据。
使用示例

Message
Routing Key
Binding Key
Queue
Message 1
cn.hz
cn.hz.#
Queue 1
Message 2
cn.hz.store
cn.hz.#cn.*.store
Queue 1、Queue 2
Message 3
cn.sz.store
cn.*.store
Queue 2

Header Exchange

与 Routing Key 无关,匹配机制是匹配消息中的 Headers 属性信息。在绑定 Queue 与 Headers Exchange 之前声明一个map键值对,通过这个map对象实现Queue 和 Exchange 的绑定。当消息发送到 RabbitMQ 时会取到该消息的 Headers 与 Exchange 绑定时指定的键值对进行匹配;如果完全匹配则消息会路由到该队列,否则不会路由到该队列。
匹配规则x-match有下列两种类型:
x-match = all :表示所有的键值对都匹配才能接受到消息
x-match = any :表示只要有键值对匹配就能接受到消息

Message
消息Headers属性
Binding Headers 属性
Queue
Message 1
key1=value1
key2=value2
x-match = any
key1=value1 key2=value2
Queue 1
Message 2
key1=value1 key2=value2
key3=value3
x-match = any key1=value1 key2=value2

x-match = all key1=value1 key2=value2
key3=value3
Queue 1、Queue 2
相似文档
  • 本文主要介绍 TDMQ RabbitMQ 版专享集群的计费方式、计费组成等信息。 计费方式: TDMQ RabbitMQ 版专享集群提供包年包月的计费模式。 包年包月: 包年包月为一种预付费方式,即先付费再使用。
  • TDMQ RabbitMQ 版专享集群采用包年包月-预付费的计费方式,您可按照以下步骤购买服务: 1. 登录腾讯云 TDMQ 控制台。 2. 在左侧导航栏选择 rabbitmq > 集群管理,单击新建,进入购买页。 3. 在购买页面,选择地域、可用区、集群类型型号、集群规格等信息。
  • 本文主要介绍计费模式为包年包月的专享集群实例欠费说明。 注意事项: 集群不再使用时请及时销毁,以免继续扣费。 集群被销毁/回收后,数据将会被清除且不可找回。
  • 5天无理由自助退还。 退款说明: TDMQ RabbitMQ 版产品遵守腾讯云 云服务退货说明,若您在购买集群后有任何不满意,我们支持五天内无理由自助退还,具体规则如下:
  • 操作场景: 本文介绍通过 TDMQ 控制台创建一个专享集群,并通过开源 RabbitMQ 控制台创建 Vhost、Exchange 和 Queue 等资源的操作步骤,了解运行一个客户端之前所需要进行的资源准备。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部