RabbitMQ是一种消息通讯机制,跟具体的编程语言无关。在企业级开发中,RabbitMQ是个常用的消息通讯机制。
通俗地讲,任何MQ都是一个临时存储消息的容器。
本文简单分享下基于.NET的RabbitMQ消息通讯。
废话不多说,直奔主题。上代码。
注意:实现需要引用RabbitMQ.Clinet程序集。
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System.Text;
namespace RabbitMQSend
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello RabbitMQ,生产者!");
var factory = new ConnectionFactory() // 创建连接工厂对象
{
HostName = "localhost",
Port = 5672,
UserName = "guest",
Password = "guest"
};
var connection = factory.CreateConnection(); // 创建连接对象
var channel = connection.CreateModel(); // 创建连接会话对象
string queueName = "myqueue";
// 声明一个队列
channel.QueueDeclare(
queue: queueName, // 队列名称
durable: false, // 是否持久化,true持久化,队列会保存磁盘,服务器重启时可以保证不丢失相关信息
exclusive: false, // 是否排他,如果一个队列声明为排他队列,该队列仅对时候次声明它的连接可见,并在连接断开时自动删除
autoDelete: false, // 是否自动删除,自动删除的前提是:至少有一个消费者连接到这个队列,之后所有与这个队列连接的消费者都断开时,才会自动删除
arguments: null // 设置队列的其他参数
);
string str = string.Empty;
do
{
Console.WriteLine("发送内容:");
str = Console.ReadLine()!;
// 消息内容
byte[] body = Encoding.UTF8.GetBytes(str);
// 发送消息
channel.BasicPublish("", queueName, null, body);
// Console.WriteLine("成功发送消息:" + str);
} while (str.Trim().ToLower() != "exit");
channel.Close();
connection.Close();
}
}
}
【小结】
无论现实多么惨不忍睹,都要坚持日供一卒。持续沉淀自己,不断完善进步。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。