【微服务专题之】.Net6下集成消息队列上-RabbitMQ
微信公众号:趣编程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是个轻量级,易部署的队列,我会根据官网指导,分享一系列常用使用技巧的,随时保持关注哦~
【微服务专题之】.Net6下集成消息队列上-RabbitMQ的更多相关文章
- [2017-10-25]Abp系列——集成消息队列功能(基于Rebus.Rabbitmq)
本系列目录:Abp介绍和经验分享-目录 前言 由于提交给ABP作者的集成消息队列机制的PR还未Review完成,本篇以Abplus中的代码为基准来介绍ABP集成消息队列机制的方案. Why 为什么需要 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- Net平台下的消息队列介绍
Net平台下的消息队列介绍 本系列主要记录最近学习消息队列的一些心得体会,打算形成一个系列文档.开篇主要介绍一下.Net平台下一些主流的消息队列框架. RabbitMQ:http:// ...
- RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ基础知识详解,RabbitMQ布曙
消息队列及常见消息队列介绍 2017-10-10 09:35操作系统/客户端/人脸识别 一.消息队列(MQ)概述 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以 ...
- Spring Boot 揭秘与实战(六) 消息队列篇 - RabbitMQ
文章目录 1. 什么是 RabitMQ 2. Spring Boot 整合 RabbitMQ 3. 实战演练4. 源代码 3.1. 一个简单的实战开始 3.1.1. Configuration 3.1 ...
- C# 消息队列之 RabbitMQ 进阶篇
Ø 简介 在之前的 C# 消息队列之 RabbitMQ 基础入门 中介绍了 RabbitMQ 的基本用法,其实要更全面的掌握 RabbitMQ 这个消息队列服务,我们还需要掌握以下内容: 1. ...
- 快速入门分布式消息队列之 RabbitMQ(2)
目录 目录 前文列表 RabbitMQ 的特性 Message Acknowledgment 消息应答 Prefetch Count 预取数 RPC 远程过程调用 vhost 虚拟主机 插件系统 最后 ...
- 消息队列之rabbitmq学习使用
消息队列之rabbitmq学习使用 1.RabbitMQ简介 1.1.什么是RabbitMQ? RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,Rabb ...
- 消息队列系统 -- RabbitMQ
消息队列系统 -- RabbitMQ RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Que ...
随机推荐
- 搜索与图论①-深度优先搜索(DFS)
深度优先搜索(DFS) 例题一(指数型枚举) 把 1∼n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序. 输入格式 一个整数 n. 输出格式 按照从小到大的顺序输出所有方案,每行 1 个. ...
- 倒计时第3天!Google Summer of Code报名即将截止!(Casbin社区还有空缺名额)
Google Summer of Code 介绍 Google Summer of Code ( GSoC ,即 Google 编程之夏)是 Google (谷歌)组织并提供经费,面对全球在读学生的在 ...
- MySQL进阶之常用函数
我的小站 有时候,除了简单的数据查询,我们还有一些高级的函数. MySQL 包含了大量并且丰富的函数,这套 MySQL 函数大全只收集了几十个常用的,剩下的比较罕见的函数我们就不再整理了,读者可以到M ...
- 新零售SaaS架构:组织管理的底层逻辑与架构设计
想要深入理解零售企业的组织架构,是非常困难的一件事.因为大部分人都没有实际经营过一家零售企业,更没有参与设计过零售企业的组织架构. 调研商家时,我们只能了解商家组织架构的现状,我们也很难和企业高层直接 ...
- 测试覆盖率 之 Cobertura的使用
什么是代码覆盖率? 代码覆盖率是对整个测试过程中被执行的代码的衡量,它能测量源代码中的哪些语句在测试中被执行,哪些语句尚未被执行. 为什么要测量代码覆盖率? 众所周知,测试可以提高软件版本的质量和可预 ...
- .NET ORM 仓储层必备的功能介绍之 FreeSql Repository 实现篇
写在开头 2018年11月的某一天,头脑发热开启了 FreeSql 开源项目之旅,时间一晃已经四年多,当初从舒服区走向一个巨大的坑,回头一看后背一凉.四年时间从无到有,经历了数不清的日夜奋战(有人问我 ...
- Android开发的开始
Android 软件 手机软件哦,目前只有一层外壳,进一步功能等待开发. 下载地址
- 升级gradle后。需要修改jenkin 编译java版本从1.8 到11
错误提示 * What went wrong: A problem occurred evaluating project ':App'. > Failed to apply plugin 'c ...
- 使用VLL技术实现多家合作伙伴复用同一条链路做两端数据全透传
公司A当前租用一条10G跨市运营商光缆,自身业务只用到一半流量,为节省成本,寻求多家合作伙伴共用链路以达到财务需求 合作伙伴需求接入链路全透传,即光缆两端接入点端口逻辑直连 当前有三种方案可以实现上述 ...
- ArcGIS和ArcEngine导出地图时,png格式支持背景透明
1.ArcGIS支持导出PNG,背景透明 导出png时,背景色和透明色不能设置为空,必须设置为同一个颜色,通常使用白色. 2.ArcEngine支持导出PNG,背景透明 //1.创建export IE ...