微信公众号:趣编程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的更多相关文章

  1. [2017-10-25]Abp系列——集成消息队列功能(基于Rebus.Rabbitmq)

    本系列目录:Abp介绍和经验分享-目录 前言 由于提交给ABP作者的集成消息队列机制的PR还未Review完成,本篇以Abplus中的代码为基准来介绍ABP集成消息队列机制的方案. Why 为什么需要 ...

  2. Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...

  3. Net平台下的消息队列介绍

    Net平台下的消息队列介绍   本系列主要记录最近学习消息队列的一些心得体会,打算形成一个系列文档.开篇主要介绍一下.Net平台下一些主流的消息队列框架.       RabbitMQ:http:// ...

  4. RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ基础知识详解,RabbitMQ布曙

    消息队列及常见消息队列介绍 2017-10-10 09:35操作系统/客户端/人脸识别 一.消息队列(MQ)概述 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以 ...

  5. Spring Boot 揭秘与实战(六) 消息队列篇 - RabbitMQ

    文章目录 1. 什么是 RabitMQ 2. Spring Boot 整合 RabbitMQ 3. 实战演练4. 源代码 3.1. 一个简单的实战开始 3.1.1. Configuration 3.1 ...

  6. C# 消息队列之 RabbitMQ 进阶篇

    Ø  简介 在之前的 C# 消息队列之 RabbitMQ 基础入门 中介绍了 RabbitMQ 的基本用法,其实要更全面的掌握 RabbitMQ 这个消息队列服务,我们还需要掌握以下内容: 1.   ...

  7. 快速入门分布式消息队列之 RabbitMQ(2)

    目录 目录 前文列表 RabbitMQ 的特性 Message Acknowledgment 消息应答 Prefetch Count 预取数 RPC 远程过程调用 vhost 虚拟主机 插件系统 最后 ...

  8. 消息队列之rabbitmq学习使用

    消息队列之rabbitmq学习使用 1.RabbitMQ简介 1.1.什么是RabbitMQ? RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,Rabb ...

  9. 消息队列系统 -- RabbitMQ

    消息队列系统 -- RabbitMQ RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Que ...

随机推荐

  1. k8s入门之namespace(三)

    namespace的作用就是用来隔离资源,将同一集群中的资源划分为相互隔离的组.同一名称空间内的资源名称要唯一,但不同名称空间时没有这个要求.有些k8s资源对象与名称空间没有关系,例如 Storage ...

  2. Java面试题资料合集

    Java面试题资料合集 2021年最新版--Java+最常见的+200++面试题汇总+答案总结汇总.pdf BIO,NIO,AIO,Netty面试题 35道.pdf Dubbo面试题 47道.pdf ...

  3. NLP教程(2) | GloVe及词向量的训练与评估

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...

  4. 1.6 为什么要学Linux,它比Windows好在哪里?

    早在 20 世纪 70 年代,UNIX 系统是开源而且免费的,但是在 1979 年时,AT&T 公司宣布了对 UNIX 系统的商业化计划,随之开源软件业转变成了版权式软件产业,源代码被当作商业 ...

  5. 5.文件共享总结中篇-Linux服务器文件共享

    今天我们来讨论Linux系统之间的文件共享,包含:SCP.FTP.rz / sz.wget 一.SCP 其实我在写SSH协议常见问题排错章节中已介绍其SCP用法. 现我把SCP常用语法格式,给大家说下 ...

  6. Django学习——图书相关表关系建立、基于双下划线的跨表查询、聚合查询、分组查询、F查询、Q查询、admin的使用、使用脚本调用Django、Django查看源生sql

    0 图书相关表关系建立 1.5个表 2.书籍表,作者表,作者详情表(垂直分表),出版社表,书籍和作者表(多对多关系) 一对一 多对多 本质都是一对多 外键关系 3.一对一的关系,关联字段可以写在任意一 ...

  7. fedora访问win10共享

    sudo mount -t cifs -o username=user,password=123 //192.168.31.20/aa /home/liao/win

  8. 哈工大软件构造Lab1(2022)

    目录 一.实验目标概述 二.实验环境配置 1.安装编写java程序的IDE--IntelliJ IDEA 2.安装Git 3.安装Junit 4.GitHub Lab1仓库的URL地址 三.实验过程 ...

  9. [数学基础] 4 欧几里得算法&扩展欧几里得算法

    欧几里得算法 欧几里得算法基于的性质: 若\(d|a, a|b\),则\(d|(ax+by)\) \((a,b)=(b,a~mod~b)\) 第二条性质证明: \(\because a~mod~b=a ...

  10. docker使用详解

    一.docker简介 docker 是一个开源的应用容器引擎,docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化 ...