- A+
所属分类:.NET技术
微信公众号:趣编程ACE
关注可了解更多的.NET日常实战开发技巧,如需源码 请公众号后台留言 源码;
[如果觉得本公众号对您有帮助,欢迎关注]
.Net中RabbitMQ的使用
【微服务专题之】.Net6下集成消息队列上-RabbitMQ【文字+视频】
超清观看视频哦~
代码演示
-详细见代码注释,操作看上文视频
生产者代码
1using RabbitMQ.Client; 2using System.Text; 3 4 5// 创建一个连接工厂 6var factory = new ConnectionFactory() 7{ 8 Uri = new Uri("amqp://guest:guest@localhost:5672") 9}; 10// 工厂开始连接 11using (var connection = factory.CreateConnection()) 12// 创建一个连接通道 13using (var channel = connection.CreateModel()) 14{ 15 channel.QueueDeclare(queue: "hello", 16 // 持久性 一直保持 直到消费者 消费队列 17 durable: true, 18 // 独占 19 exclusive: false, 20 autoDelete: false, 21 arguments: null); 22 23 // 发送的消息 24 string message = "Hello World!"; 25 var body = Encoding.UTF8.GetBytes(message); 26 27 // 基本发布 不指定交换 28 channel.BasicPublish(exchange: "", 29 // 路由键 就是队列名称 30 routingKey: "hello", 31 // 基础属性 32 basicProperties: null, 33 // 传递的消息体 34 body: body); 35 Console.WriteLine(" [x] Sent {0}", message); 36} 37 38Console.WriteLine(" Press [enter] to exit."); 39Console.ReadLine();
消费者代码
1using RabbitMQ.Client; 2using RabbitMQ.Client.Events; 3using System.Text; 4 5// 创建一个连接工厂 6var factory = new ConnectionFactory() 7{ 8 Uri = new Uri("amqp://guest:guest@localhost:5672") 9}; 10using (var connection = factory.CreateConnection()) 11using (var channel = connection.CreateModel()) 12{ 13 channel.QueueDeclare(queue: "hello", 14 durable: true, 15 exclusive: false, 16 autoDelete: false, 17 arguments: null); 18 19 // 创建一个消费者基本事件 20 var consumer = new EventingBasicConsumer(channel); 21 consumer.Received += (model, ea) => 22 { 23 var body = ea.Body.ToArray(); 24 var message = Encoding.UTF8.GetString(body); 25 Console.WriteLine(" [x] Received {0}", message); 26 }; 27 channel.BasicConsume(queue: "hello", 28 // 自动确认 29 autoAck: true, 30 consumer: consumer); 31 32 Console.WriteLine(" Press [enter] to exit."); 33 Console.ReadLine();
环境安装
docker下安装RabbitMQ镜像
1// 详细解释看视频 2docker run -d --hostname my-rabbit --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq 3 4//这一段必须需要 否则网站起不来 其中 c71119561de6 为容器ID 5docker exec -it c71119561de6 rabbitmq-plugins enable rabbitmq_management
RabbitMQ是个轻量级,易部署的队列,我会根据官网指导,分享一系列常用使用技巧的,随时保持关注哦~