asp.net core rabbitmq的基本使用

embedded/2024/10/21 9:49:08/

要在 .NET Core 应用程序中实现使用 RabbitMQ 发送和接收消息的简单示例,首先需要在开发机器上安装 RabbitMQ 服务器并运行它。接下来,我们将创建两个控制台应用程序:一个用于发送消息(生产者),另一个用于接收消息(消费者)。

步骤 1: 安装 RabbitMQ 客户端库

  1. 创建两个控制台项目(例如,RabbitMQProducerRabbitMQConsumer)。

  2. 在每个项目中,使用 NuGet 安装 RabbitMQ 客户端库。打开项目的 NuGet 包管理器控制台(PMC),并运行以下命令:

    Install-Package RabbitMQ.Client -Version 6.2.1
    

    根据您看到的最新版本进行调整。

步骤 2: 实现生产者

RabbitMQProducer 项目的 Program.cs 中,添加以下代码来实现一个简单的消息生产者:

using System;
using RabbitMQ.Client;
using System.Text;class Program
{static void Main(string[] args){// 连接到 RabbitMQ 服务器var factory = new ConnectionFactory() { HostName = "localhost" };using(var connection = factory.CreateConnection())using(var channel = connection.CreateModel()){// 声明一个队列channel.QueueDeclare(queue: "hello",durable: false,exclusive: false,autoDelete: false,arguments: null);string message = "Hello World!";var body = Encoding.UTF8.GetBytes(message);// 发送消息到队列channel.BasicPublish(exchange: "",routingKey: "hello",basicProperties: null,body: body);Console.WriteLine(" [x] Sent {0}", message);}Console.WriteLine(" Press [enter] to exit.");Console.ReadLine();}
}

步骤 3: 实现消费者

RabbitMQConsumer 项目的 Program.cs 中,添加以下代码来实现一个简单的消息消费者:

using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System;
using System.Text;class Program
{static void Main(string[] args){// 连接到 RabbitMQ 服务器var factory = new ConnectionFactory() { HostName = "localhost" };using (var connection = factory.CreateConnection())using (var channel = connection.CreateModel()){// 声明一个队列channel.QueueDeclare(queue: "hello",durable: false,exclusive: false,autoDelete: false,arguments: null);var consumer = new EventingBasicConsumer(channel);consumer.Received += (model, ea) =>{var body = ea.Body.ToArray();var message = Encoding.UTF8.GetString(body);Console.WriteLine(" [x] Received {0}", message);};// 开始消费队列中的消息channel.BasicConsume(queue: "hello",autoAck: true,consumer: consumer);Console.WriteLine(" Press [enter] to exit.");Console.ReadLine();}}
}

步骤 4: 运行示例

  1. 确保 RabbitMQ 服务在本地运行。
  2. 首先启动 RabbitMQConsumer 程序以确保它正在等待接收消息。
  3. 然后启动 RabbitMQProducer 程序发送消息。

如果一切设置正确,您将在 RabbitMQConsumer 控制台应用程序中看到收到的消息 “Hello World!”。

这个简单的示例展示了如何在 .NET Core 中使用 RabbitMQ 实现基本的消息发布和订阅。在实际应用中,您可能还需要考虑消息确认、错误处理和重试机制,以构建更健壮和可靠的消息系统。


http://www.ppmy.cn/embedded/10617.html

相关文章

oracle_申明与赋值

1.格式 --1.程序块结构 declare --申明部分 begin --执行部分 end; 2.写一个空的程序块 --1.程序块结构 declare --申明部分 begin --执行部分 null; end; 在控制台输出【hello world】 --2.简单的程序输入 DECLARE --申明部分 BEGIN --…

公开征集 | 2024年区块链创新大赛赛题有奖征集正式启动

为进一步提升区块链作为信任基础设施在数据流通、实体经济、社会治理等方面的应用支撑作用,在国家区块链技术创新中心的指导下,长安链开源社区联合多所国内知名学会协会、高等院校共同筹办2024年区块链创新大赛。 赛题公开征集 区块链是实现数据可信共享…

浅谈Java NIO

Java NIO(New Input/Output)是Java平台上一种全新的IO API,相较于传统的Java I/O(也称为BIO,阻塞I/O),NIO引入了非阻塞I/O和通道(Channel)的概念,以及缓冲区&…

南京邮电大学数学实验A 作业1 Matlab基础 答案 | 《MATLAB数学实验》第三版 第一章 课后习题答案

若要获得更好的阅读体验,请前往 链接。 1(课本习题1) 执行下列命令,观察其运算结果,理解其意义: (1) [1 2; 3 4]10-2i; (2) [1 2; 3 4].*[0.1 0.2; 0.3 0.4]; (3) [1 2; 3 4].[20 10; 9 2]; (4) [1 2; 3 4].^2; (5) exp([1 2; 3 4]); …

【JavaEE多线程】Java 文件操作

目录 Java中操作文件File概述属性构造方法方法 文件内容的读写——文件流 streamInputStreamFileInputStream概述利用 Scanner 进行字符读取OutputStream 概述 练习 Java中操作文件 Java 中通过 java.io.File类来对一个文件(包括目录)进行抽象的描述。注…

多服务器上的 docker 实现互相访问

场景: Server_1上有一个docker容器 containerXServer_2上有一个docker容器 containerX…Server_n上有一个docker容器 containerX 如何实现着 n 个docker之间的互相访问呢? 实现方式: Step1:配置一个通用的容器 新建一个容器&a…

PHP定时任务框架taskPHP3.0学习记录4宝塔面板bash定时任务(轮询指定json文件字段后确定是否执行、环境部署、执行日志、文件权限)

一 需求说明 宝塔面板中,读取指定 /www/wwwroot/lockdata/cron/webapp.json文件;配置定时任务脚本task.sh;当读取webapp.json中,如果cron_task=1,则执行任务php start.php start命令行;完成命令后,执行cron_task=0和"cron_time=当前执行时间;记录日志;宝塔设置定时…

lombok

lombok是一个实用的Java类库&#xff0c;能通过注解的形式自动生成构造器。getter/setter、equals、hashcode、toString等方法&#xff0c;并可以自动化生成日志变量&#xff0c;简化Java开发、提高效率。 导入依赖&#xff1a; <dependency><groupId>org.projec…