すのはら荘春原庄的雪

.Net6快速搭建RabbitMQ发布订阅模式

Toretto·2023-08-25 09:01·27 次阅读

.Net6快速搭建RabbitMQ发布订阅模式

 

(使用Asp.Net  Core + 控制台应用)分为三步

1、  创建RabbitMQ链接

2、  搭建生产者

3、  搭建消费者

创建RabbitMQ链接#

可以先创建帮助类,专门用于RabbitMQ连接(需要安装Nuget包 RabbitMQ.Client)

 

生产者的搭建#

创建一个.Net6项目

在控制器里创建一个生产者控制器

代码:

以下是代码里的主要部分

先引用帮助类、来连接RabbitMQ

连接到RabbitMQ控制台之后,先创建信道

创建交换机的名称

创建交换机的类型--广播(会将消息广播给所有与之绑定的队列。无论有多少个消费者队列,每个队列都会收到完全相同的消息副本。这种模式常用于需要将消息广播给多个订阅者的场景,比如日志记录、通知系统等。

Fanout交换机忽略消息的路由键(routing key),因此消息会被发送到所有与之绑定的队列,而不是根据路由键进行筛选和路由。这使得所有的订阅者都能接收到广播的消息,无论其感兴趣的内容是什么。)如果想要精确传递要用到topic类型交换机

创建队列并绑定交换机,因为是Fanout所以不需要key值

RabbitMQ服务器发生故障或重新启动,持久化的消息也会被保存,以确保不会丢失。

向交换机写消息--可以是异常信息

生产者完毕

消费者的构建#

创建控制台应用

该部分代码使用Lambda表达式定义了一个事件处理程序,当消费者接收到消息时,该事件处理程序将执行以下操作:

1.  将从ea.Body中获取的消息内容转换为字符串形式,并存储在message变量中。

2.  使用Console.WriteLine方法打印消费者编号、队列名称、消费消息的长度以及消费消息的内容。

3.  调用channel.BasicAck方法,向RabbitMQ发送ACK确认消息,通知RabbitMQ该条消息已成功处理。

4.  程序休眠10毫秒,模拟处理消耗一定时间。

5.  增加计数器i的值。

这段代码主要实现了消费者接收到消息后的处理逻辑,包括打印消息内容、发送ACK确认消息,并进行线程休眠。

 

posted @   想睡觉的小坤  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
目录
点击右上角即可分享
微信分享提示