asp.net core rabbitmq的基本使用

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

步骤 1: 安装 RabbitMQ 客户端库

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

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

    bash 复制代码
    Install-Package RabbitMQ.Client -Version 6.2.1

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

步骤 2: 实现生产者

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

csharp 复制代码
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 中,添加以下代码来实现一个简单的消息消费者:

csharp 复制代码
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 实现基本的消息发布和订阅。在实际应用中,您可能还需要考虑消息确认、错误处理和重试机制,以构建更健壮和可靠的消息系统。

相关推荐
whltaoin20 小时前
【微服务中间件】RabbitMQ 多平台安装搭建实践指南(Windows_macOS_Ubuntu_Docker 全场景)
微服务·中间件·消息队列·rabbitmq·多平台
qq_281317471 天前
RabbitMQ
分布式·rabbitmq
罗小爬EX1 天前
基于WebSocket + STOMP + SockJS + RabbitMq的聊天室Demo
websocket·网络协议·rabbitmq
大飞哥~BigFei1 天前
RabbitMq消费消息遇到的坑
java·rabbitmq·java-rabbitmq
百***37481 天前
Spring Boot 中 RabbitMQ 的使用
spring boot·rabbitmq·java-rabbitmq
yumo_fly1 天前
欧拉22.03系统安装RabbitMQ-3.6.10
分布式·rabbitmq·ruby
百***46801 天前
RabbitMQ之交换机
分布式·rabbitmq·ruby
KYumii1 天前
RabbitMQ应用(2)
分布式·rabbitmq
百***92021 天前
RabbitMQ 客户端 连接、发送、接收处理消息
分布式·rabbitmq·ruby
原来是好奇心1 天前
消息队列终极选型:RabbitMQ、RocketMQ、Kafka与ActiveMQ深度对比
分布式·kafka·rabbitmq·rocketmq·activemq·mq