RabbitMQ(三)——简单模式
RabbitMQ系列
RabbitMQ(三)——简单模式
前言
简单模式中有一个生产者一个消费者,这里分别是SimpleServer,SimpleClient.SimpleServer作为生产者,给队列发送消息,而SimpleClient作为消费者去消费消息。每条消息都是消费完就没了。
创建项目
SimpleServer:
- 创建工厂ConnectionFactory并初始化,这里连接的是本地,远程只需改变地址即可,账号密码默认为guest。
- 使用工厂创建一个连接对象。
- 通过连接对象创建一个通道。
- 声明一个队列,用来存放消息,这里给队列命名为simple。
- 使用IModel.BasicPublish()向队列发布消息。

static void Main(string[] args) { //1.创建连接工厂 ConnectionFactory factory = new ConnectionFactory() { HostName = "127.0.0.1", UserName = "guest", Password = "guest" }; //2.创建连接 var connection = factory.CreateConnection(); //3.创建管道 var channel = connection.CreateModel(); //4.声明队列 channel.QueueDeclare("simple", false, false, false, null); string msg = "这是一条消息"; var sendByte = Encoding.UTF8.GetBytes(msg); //5.发布消息 channel.BasicPublish("", "simple", null, sendByte); channel.Close(); connection.Close(); }
SimpleClient:
- 初始化工厂
- 创建连接
- 创建通道
- 创建消费者
- 开始消费消息
- 接收消息做一些事情...

static void Main(string[] args) { //初始化工厂 ConnectionFactory factory = new ConnectionFactory() { HostName = "127.0.0.1", UserName = "guest", Password = "guest" }; //创建连接 using (IConnection connection = factory.CreateConnection()) { using (IModel channel = connection.CreateModel()) { //声明队列 channel.QueueDeclare("simple", false, false, false, null); //创建消费者对象 var consumer = new EventingBasicConsumer(channel); consumer.Received += (model, e) => { byte[] message = e.Body.ToArray(); Console.WriteLine("接收消息:" + Encoding.UTF8.GetString(message)); //返回消息确认 channel.BasicAck(e.DeliveryTag, false); }; //消费者开启监听 channel.BasicConsume("simple", false, consumer); Console.ReadLine(); } } }
效果:
我们先改下生产者发布消息的代码,发布10条消息
1 2 3 4 5 6 7 | for ( int i = 0; i < 10; i++) { string msg = $ "第{i+1}条消息" ; //5.发布消息 channel.BasicPublish( "" , "simple" , null , Encoding.UTF8.GetBytes(msg)); Console.WriteLine($ "已发送消息:{msg}" ); } |
现在我们打开本地RabbitMQ管理后台 http://localhost:15672/
启动SimpleServer程序发布消息后出现十条记录:
开始消费消息:
消费后simple队列里的消息从10条变成了0条。
本篇到这就完结了,下一篇工作队列模式
附上Demo地址:https://github.com/1164887865/RabbitMQDemo
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现