RabbitMQ消息队列、路由器、消息的持久化

本文介绍如何使用C#通过RabbitMQ发送持久化消息。首先配置连接工厂,然后创建连接并初始化信道。声明交换器、队列,并绑定两者。最后,将消息转换为字节数组,设置消息属性为持久化,并发布到指定的交换器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

如有错误还请斧正,谢谢

```C#

//入列
ConnectionFactory factory = new ConnectionFactory { HostName = "localhost", UserName = "You`rName", Password = "You`rPassword" };//实例化连接工厂
using (IConnection conn = factory.CreateConnection())//建立连接
{
//创建信道
using (IModel im = conn.CreateModel())
{
//order为交换器名称,ExchangeType为交换机类型(Direct,Fanout,Topic,Headers)具体使用场景在印象笔记中有记录
im.ExchangeDeclare("order", ExchangeType.Direct,durable:true,autoDelete:false,arguments:null);
//creatorder为队列名,第一个false是durable(持久化)第二个false是exclusive(是否排他)第三个false为autodelete(是否自动删除)null为arguments(其他参数)
im.QueueDeclare("creatorder", durable:true,exclusive:false,autoDelete:false,arguments:null);
//creatorder为队列名,order为交换器名,ExchangeType.Direct是路由key,null为arguments(其他参数)
im.QueueBind("creatorder", "order", ExchangeType.Direct, null);
byte[] message = ConvertToByteHelp.ObjectToBytes(order);//把对象转换成bytes[]
IBasicProperties properties = im.CreateBasicProperties();
//properties.SetPersistent(true);队列设置为持久化之后,需要将消息也设置为持久化这是老方法已过时下面为先用新方法
properties.DeliveryMode = 2;//将消息持久化的新方法
im.BasicPublish("order", ExchangeType.Direct, properties, message);//推送消息
//im.BasicPublish("order", routingKey: "Direct", basicProperties: properties, body: message);
}
}

```

转载于:https://www.cnblogs.com/SupPilot/p/10214456.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值