日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

.net 使用RabbitMQ demo

發(fā)布時(shí)間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .net 使用RabbitMQ demo 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、環(huán)境搭建就不重復(fù)了 上面有

二、在.NET中使用RabbitMQ需要下載RabbitMQ的客戶(hù)端程序集,可以到 官網(wǎng)下載?下載解壓后就可以得到RabbitMQ.Client.dll,這就是RabbitMQ的客戶(hù)端。

三、客戶(hù)端代碼

? ? ? ?MQ_send(生產(chǎn)者)類(lèi)

? ? ? ?

public class MQ_Send
{
public static void SendMSG(string queue_str, string msg ,bool durable) {
var factory = new ConnectionFactory();
factory.HostName = "192.168.0.*";
factory.UserName = "******";
factory.Password = "**********";?
using (var connection = factory.CreateConnection())
{
using (var channel = connection.CreateModel())
{
//queue 隊(duì)列名
// bool durable 是否持久化 是否設(shè)置消息持久化
//bool exclusive 是否獨(dú)有 排外
//bool autoDelete 是否自動(dòng)刪除
//IDictionary<string, object> arguments 其他參數(shù)
channel.QueueDeclare(queue_str, durable, false, false, null);
string message = msg;
var body = Encoding.UTF8.GetBytes(message);
if (durable)
{
var properties = channel.CreateBasicProperties();
properties.SetPersistent(true);
channel.BasicPublish("", queue_str, properties, body);
}
else
{
channel.BasicPublish("", queue_str, null, body);
}
//Console.WriteLine(" set {0}", message);
}
}
}
}

?

主程序:

static void Main(string[] args)
{

#region 消息和隊(duì)列均不持久化

for (int i = 0; i < 4; i++)
{
MQ_Send.SendMSG("hello1", "測(cè)試", true);
}

#endregion
Console.ReadKey();

}

?

消費(fèi)者主程序:

static void Main(string[] args)
{
var factory = new ConnectionFactory();
factory.HostName = "192.168.0.*";
factory.UserName = "******";
factory.Password = "**********";
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "hello1",
durable: true,
exclusive: false,
autoDelete: false,
arguments: null);

channel.BasicQos(prefetchSize: 0, prefetchCount: 1, global: false);

Console.WriteLine(" [*] Waiting for messages.");

var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);

channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false);
};
channel.BasicConsume(queue: "hello1",
noAck: false,
consumer: consumer);

Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}

}

結(jié)束了 一般情況下都是用持久化的? 人比較懶 直接上代碼 是程序都能看懂的

轉(zhuǎn)載于:https://www.cnblogs.com/mintworld/p/8970713.html

總結(jié)

以上是生活随笔為你收集整理的.net 使用RabbitMQ demo的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。