.NET RabbitMQ使用教程
2024-09-12
104
RabbitMQ是一个开源的AMQP消息代理,可以用于应用程序和服务之间进行异步通信。以下是使用.NET和RabbitMQ的简单教程:
步骤 1: 安装 RabbitMQ
首先,确保你已经安装了RabbitMQ服务器。你可以在RabbitMQ官方网站上找到适合你操作系统的安装程序。
RabbitMQ 官网下载:https://www.rabbitmq.com/download.html
启动RabbitMQ的步骤如下:
cd rabbitmq_server-3.9.14
./rabbitmq-server
启动成功后,可以通过浏览器访问RabbitMQ的管理控制台。默认地址是http://localhost:15672/。
步骤 2: 安装 .NET 客户端库
在你的.NET项目中,你需要使用RabbitMQ的客户端库。可以通过NuGet安装 RabbitMQ.Client 包。你可以在Visual Studio中的NuGet包管理器中搜索并安装它,或者使用命令行运行以下命令:
dotnet add package RabbitMQ.Client
步骤 3: 创建生产者和消费者
声明队列
using RabbitMQ.Client;
public class Program
{
public static void Main(string[] args)
{
// 创建连接工厂
var factory = new ConnectionFactory();
factory.HostName = "localhost";
factory.Port = 5672;
factory.Username = "guest";
factory.Password = "guest";
// 创建连接
var connection = factory.CreateConnection();
// 创建信道
var channel = connection.CreateChannel();
// 声明队列
channel.QueueDeclare("myqueue", true, false, false, null);
}
}
这段代码声明了一个名为"myqueue"的队列,该队列是持久的、排他的、非自动删除的。
生产者(发送消息)
using RabbitMQ.Client;
using System;
using System.Text;
class Program
{
static void Main()
{
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, RabbitMQ!";
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish(exchange: "", routingKey: "hello", basicProperties: null, body: body);
Console.WriteLine(" [x] Sent {0}", message);
}
}
消费者(接收消息)
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System;
using System.Text;
class Program
{
static void Main()
{
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: 运行生产者和消费者
确保RabbitMQ服务器正在运行,然后运行生产者和消费者代码。生产者将发送消息到名为“hello”的队列,而消费者将从该队列接收消息。
这只是一个基本示例,你可以根据需要扩展和定制。例如,可以设置持久化队列以确保消息不会丢失,并实现更复杂的消息模式。
更新于:4个月前赞一波!1
相关文章
- .NET C# 使用Hook钩子实现全局监听键盘和鼠标
- BotSharp 基于 .NET 平台的开源 AI 聊天机器人框架
- .NET C#连接FTP实现文件上传下载
- ABP.Net Core使用教程(一)启动模版项目
- 【说站】java RabbitMQ消息队列是什么
- .NET C#中的Func、Predicate和Expression用法详解
- 5个高性能 .NET Core 图片处理库推荐
- ASP.NET如何将Views文件夹从项目分离
- .NET C# 读取编辑.AVIF图片文件
- .NET C# SkiaSharp读取.AVIF图片文件报错
- .NET开源ORM FreeSql常见问题和解决方法
- 微软于发布了.NET 9 Release Candidate 2 提高整体质量
- 【说站】ps一键换天空教程
- 分享5个开源的.NET Excel读写操作库
- ASP.NET 使用Entity Framework (EF) 创建迁移修改SQLite数据库表结构
- 如何从.NET Framework迁移到.NET Core或.NET 6/7?
- 如何优化ASP.NET Core应用的性能?
- 10款.NET开发中推荐的代码分析和质量工具
- .NET9 Blazor有哪些更新?
- 【说站】mysql教程 查看数据库创建信息
文章评论
评论问答