ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-07-01 15:35:40  阅读:206  来源: 互联网

标签:body 队列 RabbitMQ new var Net6 message channel


微信公众号:趣编程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是个轻量级,易部署的队列,我会根据官网指导,分享一系列常用使用技巧的,随时保持关注哦~

标签:body,队列,RabbitMQ,new,var,Net6,message,channel
来源: https://www.cnblogs.com/qubiancheng666/p/16434806.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有