微信公众号:趣编程ACE
关注可了解更多的.NET日常实战开发技巧,如需源码 请公众号后台留言 源码;
[如果觉得本公众号对您有帮助,欢迎关注]
.Net中RabbitMQ的使用
超清观看视频哦~
官网链接
RabbitMQ
代码演示
-详细见代码注释,操作看上文视频
生产者代码
1using RabbitMQ.Client;2using System.Text;345// 创建一个连接工厂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;45// 创建一个连接工厂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是个轻量级,易部署的队列,我会根据官网指导,分享一系列常用使用技巧的,随时保持关注哦~