5.Fanout交换机之新订单通知商户场景

标题 :
5.Fanout交换机之新订单通知商户场景
目录 :
RabbitMQ
序号 :
5

        const string newOrderQueueName = "neworder-queue-sms";



var connection = connectionFactory.CreateConnection();
var channel = connection.CreateModel();
//设置服务质量
channel.BasicQos(0, 1, false);
//定义一个类型为Fanout的交换机
channel.ExchangeDeclare(exchangeName, ExchangeType.Fanout, true, false, null);
//定义一个队列,将用于存放顾客下的订单
channel.QueueDeclare(queue: newOrderQueueName, durable: true, exclusive: false, autoDelete: false, arguments: null);
//将队列绑定到交换机上
channel.QueueBind(newOrderQueueName, exchangeName, "2", null);
//定义消费者
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] 短信消费者,需要把订单信息通过短信通知给商家. 这是订单信息:{0}" , message);
channel.BasicAck(ea.DeliveryTag, false);
};
channel.BasicConsume(queue: newOrderQueueName, false, consumer: consumer);

Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
}
}
​ - 需要将交换机类型设置为ExchangeType.Fanout - 需要将队列绑定到我们定义的fanout交换机上 ![](https://www.showdoc.cc/server/api/common/visitfile/sign/370756d47726a5775254c2b4863f2f28?showdoc=.jpg) ​ ​ ### 另外的实验 ​ - 忽略routingKey的实验,可以看到fanout交换机忽略了routingKey ​csharp

发送

channel.BasicPublish(exchangeName, routingKey: "1", basicProperties: null, body: body);

消费

channel.QueueBind(newOrderQueueName, exchangeName, "2", null);
channel.QueueBind(newOrderQueueName, exchangeName, "3", null);
```

引用链接

http://rubybunny.info/articles/exchanges.html

转载于:https://www.cnblogs.com/gytangyao/p/11406093.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值