.Net6下集成消息队列上-RabbitMQ
.Net中RabbitMQ的使用
RabbitMQ
代码演示
生产者代码
using RabbitMQ.Client; using System.Text; // 创建一个连接工厂 var factory = new ConnectionFactory() { Uri = new Uri("amqp://guest:guest@localhost:5672") }; // 工厂开始连接 using(var connection = factory.CreateConnection()) // 创建一个连接通道 using(var channel = connection.CreateModel()) { channel.QueueDeclare(queue: "hello", // 持久性 一直保持 直到消费者 消费队列 durable: true, // 独占 exclusive: false, autoDelete: false, arguments: null); // 发送的消息 string message = "Hello World!"; var body = Encoding.UTF8.GetBytes(message); // 基本发布 不指定交换 channel.BasicPublish(exchange: "", // 路由键 就是队列名称 routingKey: "hello", // 基础属性 basicProperties: null, // 传递的消息体 body: body); Console.WriteLine(" [x] Sent {0}", message); } Console.WriteLine(" Press [enter] to exit."); Console.ReadLine();
消费者代码
using RabbitMQ.Client; using RabbitMQ.Client.Events; using System.Text; // 创建一个连接工厂 var factory = new ConnectionFactory() { Uri = new Uri("amqp://guest:guest@localhost:5672") }; using(var connection = factory.CreateConnection()) using(var channel = connection.CreateModel()) { channel.QueueDeclare(queue: "hello", durable: true, exclusive: false, autoDelete: false, arguments: null); // 创建一个消费者基本事件 var consumer = new EventingBasicConsumer(channel); consumer.Received += (model, ea) => { var body = ea.Body.ToArray(); var message = Encoding.UTF8.GetString(body); Console.WriteLine(" [x] Received {0}", message); }; channel.BasicConsume(queue: "hello", // 自动确认 autoAck: true, consumer: consumer); Console.WriteLine(" Press [enter] to exit."); Console.ReadLine();
环境安装
docker下安装RabbitMQ镜像
//第一步:制作docker 镜像 docker run -d --hostname my-rabbit --name rabbitmq -p 15672:15672 - p 5672:5672 rabbitmq //第二步:这一段必须需要 否则网站起不来 其中 c71119561de6 为容器ID docker exec -it c71119561de6 rabbitmq-plugins enable rabbitmq_management
RabbitMQ是个轻量级,易部署的队列,我会根据官网指导,分享一系列常用使用技巧的,随时保持关注哦~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!