MQ消息队列(3)RabbitMQ交换机类型简述-C/S开发框架

RabbitMQ通过Exchange(交换机)将消息根据不同规则路由到对应的Queue(队列)中,本文主要简述交换机的四种类型,仅供学习分享使用,如有不足之处,还请指正。
RabbitMQ交换机类型
RabbitMQ一共四种交换机,如下所示:
- Direct Exchange:直连交换机,根据Routing Key(路由键)进行投递到不同队列。
- Fanout Exchange:扇形交换机,采用广播模式,根据绑定的交换机,路由到与之对应的所有队列。
- Topic Exchange:主题交换机,对路由键进行模式匹配后进行投递,符号#表示一个或多个词,*表示一个词。
- Header Exchange:头交换机,不处理路由键。而是根据发送的消息内容中的headers属性进行匹配。
Direct Exchange
直连交换机,根据Routing Key(路由键)进行投递到不同队列。
单个绑定,一个路由键对应一个队列。如下所示:

多个绑定,一个路由键对应多个队列,则消息会分别投递到两个队列中,如下所示:

Fanout Exchange
扇形交换机,采用广播模式,根据绑定的交换机,路由到与之对应的所有队列。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的。

Topic Exchange
主题交换机,对路由键进行模式匹配后进行投递,符号#表示一个或多个词,*表示一个词。因此“abc.#”能够匹配到“abc.def.ghi”,但是“abc.*” 只会匹配到“abc.def”。如下所示:

Header Exchange
头交换机,不处理路由键。而是根据发送的消息内容中的headers属性进行匹配。在绑定Queue与Exchange时指定一组键值对;当消息发送到RabbitMQ时会取到该消息的headers与Exchange绑定时指定的键值对进行匹配;如果完全匹配则消息会路由到该队列,否则不会路由到该队列。headers属性是一个键值对,可以是Hashtable,键值对的值可以是任何类型。而fanout,direct,topic 的路由键都需要要字符串形式的。
匹配规则x-match有下列两种类型:
x-match = all :表示所有的键值对都匹配才能接受到消息
x-match = any :表示只要有键值对匹配就能接受到消息
消息头交换机,如下图所示:

以上就是RabbitMQ常见的四种交换机模式。
MQ消息队列(1)RabbitMQ入门介绍及环境搭建-C/S开发框架
MQ消息队列(2)RabbitMQ概念及控制台介绍-C/S开发框架
MQ消息队列(4)C#利用RabbitMQ实现点对点消息传输-C/S开发框架
MQ消息队列(5)C#利用RabbitMQ实现消息订阅与发布-C/S开发框架
开发数据查询窗体 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
C#.NET 消息机制-C/S开发框架
C# LINQ使用案例参考-C/S开发框架
Visual Studio正式版注册码秘钥VS密钥-C/S开发框架
C/S架构进销存快速开发框架开发模板功能介绍
.NET WebApi后端开发框架-微信小程序消息订阅与推送案例详解
使用DeepSeek生成DevExpress表格、窗体、C#模型代码并集成到开发框架|C/S开发框架
C#统计List 字符串属性长度(返回每个属性的最大长度)|C/S开发框架
详解DevExpress.LookUpEdit控件实现自动搜索定位功能|C/S开发框架
ToolTipController超提示组件显示超提示信息在指定位置|C/S开发框架
FastReport.NET自动文本宽度+自动换行+自动行高|C/S开发框架
C#获取MAC地址包括物理网卡和虚拟网卡|C/S开发框架
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
