?
微信公众号:趣编程ACE
关注可了解更多的.NET日常实战开发技巧,如需源码 请公众号后台留言 源码;
[如果觉得本公众号对您有帮助,欢迎关注]
【微服务专题之】.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);2223 // 发送的消息24 string message = "Hello World!";25 var body = Encoding.UTF8.GetBytes(message);2627 // 基本发布 不指定交换28 channel.BasicPublish(exchange: "",29 // 路由键 就是队列名称30 routingKey: "hello",31 // 基础属性32 basicProperties: null,33 // 传递的消息体34 body: body);35 Console.WriteLine(" [x] Sent {0}", message);36}3738Console.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);1819 // 创建一个消费者基本事件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);3132 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 rabbitmq34//这一段必须需要 否则网站起不来 其中 c71119561de6 为容器ID5docker exec -it c71119561de6 rabbitmq-plugins enable rabbitmq_managementRabbitMQ是个轻量级,易部署的队列,我会根据官网指导,分享一系列常用使用技巧的,随时保持关注哦~
?