MQ消息队列(5)C#利用RabbitMQ实现消息订阅与发布-C/S开发框架
在消息队列模型中,如何将消息广播到所有的消费者,这种模式成为“发布/订阅”。本文主要以一个简单的小例子,简述通过fanout交换机,实现消息的发布与订阅,仅供学习分享使用,如有不足之处,还请指正。 Fanout交换机模型扇形交换机,采用广播模式,根据绑定的交换机,路由到与之对应的所有队列。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的。 RabbitMQ控制台操作新增两个队列在同一个Virtual host下新增两个队列Q1,Q2,如下图所示: 绑定fanout交换机将两个队列绑定到系统默认的fanout交换机,如下所示: 示例效果图生产者,采用Fanout类型交换机发布消息,如下图所示: 当生产者发布 一条消息时,Q1,Q2两个队列均会收到,如下图所示: 当启动消费者后,两个消费者,均会订阅到相关消息,如下图所示: 核心代码消息发布建立连接后,将通道声明类型为Fanout的交换机,如下所示:
消息订阅建立连接后,通道声明类型为Fanout的交换机,并绑定队列进行订阅,如下所示:
关于RabbitMQ的基础知识介绍,可参考前几篇博文。
参考文档:
Visual Studio 2019 (C#/.NET)安装教程-C/S开发框架 C# DevExpress.XtraCharts获取调色板系统默认颜色-C/S开发框架 C#使用SqlBulkCopy快速导入Excel文件(xls/xlsx)-C/S开发框架 C# FastReport.NET批量打印条形码报表详解教程-C/S开发框架 C# C/S架构软件自动升级程序Winform+多数据库(MySQL,MsSQL,Oracle)-C/S开发框架 C# FormTool.SetCursor设置光标为等待状态,提高用户体验-C/S开发框架 C# Combox组件动态下拉数据-C/S开发框架 C#.NET理解Task和async await原理-C/S开发框架 理解C#.NET泛型运作原理-C/S开发框架 C#使用PInvoke.Kernel32加载非托管DLL嵌入资源-C/S开发框架 C#.NET LINQ入门基础-C/S开发框架 C# OOP编程 模拟做早餐探索同步异步机制-C/S开发框架 dotnet 根据基线包版本实现库版本兼容-C/S开发框架 C#获取Windows10屏幕的缩放比例-C/S开发框架 C# Image图片格式转换(gif/jpg/png/bmp)-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内容管理系统 | |