MQ消息队列(3)RabbitMQ交换机类型简述-C/S开发框架
RabbitMQ通过Exchange(交换机)将消息根据不同规则路由到对应的Queue(队列)中,本文主要简述交换机的四种类型,仅供学习分享使用,如有不足之处,还请指正。 RabbitMQ交换机类型RabbitMQ一共四种交换机,如下所示:
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常见的四种交换机模式。
参考文档:
C/S开发框架的数据访问层用LINQ吗? C/S开发框架DAL层提交数据报错"外键值为空!"解决方案。 C/S开发框架新功能:批量更新业务单据的业务员、制单人制表人 C/S开发框架支持加载数据库的FastReport.NET报表模板文件 - 功能升级 String.Join和StringBuilder性能比较-C/S开发框架 C#DataTable(转List /JSON/字典 互转)-C/S开发框架 ASP.NET Core中使用滑动窗口限流-C/S开发框架 C#.NET其他程序集访问Internal类-C/S开发框架 FileSystemWatcher类监控文件的更改状态并且实时备份文件-C/S开发框架 C#读取加载XML文件-C/S开发框架 C#使用Newtonsoft.Json.dll解析Json数据-C/S开发框架 了解栈溢出StackOverFloweExeption的原理吗?-C/S开发框架 C#.NET理解Task和async await原理-C/S开发框架 MQ消息队列(5)C#利用RabbitMQ实现消息订阅与发布-C/S开发框架 MQ消息队列(4)C#利用RabbitMQ实现点对点消息传输-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内容管理系统 | |