【微服务专题之】.Net6下集成消息队列上-RabbitMQ

  • 【微服务专题之】.Net6下集成消息队列上-RabbitMQ已关闭评论
  • 27 次浏览
  • A+
所属分类:.NET技术
摘要

​ 微信公众号:趣编程ACE
关注可了解更多的.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();

【微服务专题之】.Net6下集成消息队列上-RabbitMQ

消费者代码

 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();

【微服务专题之】.Net6下集成消息队列上-RabbitMQ

环境安装

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

【微服务专题之】.Net6下集成消息队列上-RabbitMQ

RabbitMQ是个轻量级,易部署的队列,我会根据官网指导,分享一系列常用使用技巧的,随时保持关注哦~