快速掌握RabbitMQ(二)——四种Exchange介绍及代码演示

本文介绍了RabbitMQ中的四种Exchange类型:direct、fanout、topic和header。direct类型的Exchange基于完全匹配的routingKey进行消息路由;fanout类型则将消息广播到所有绑定的队列;topic类型允许使用通配符进行路由规则匹配;header类型不依赖routingKey,而是基于headers进行消息路由。文中通过代码示例详细展示了每种类型的Exchange如何工作。
摘要由CSDN通过智能技术生成

 在上一篇的最后,编写了一个C#驱动RabbitMQ的简单栗子,了解了C#驱动RabbitMQ的基本用法。本章介绍RabbitMQ的四种

1 direct类型

1 direct路由规则

    上一篇最后一个栗子使用的Exchange就是direct类型的,direct类型的exchange路由规则很简单:

  exchange在和queue进行binding时会设置routingkey(为了避免和下边的routingKey混淆,很多时候把这里的routingKey叫做BindingKey)

channel.QueueBind(queue:"Q1", exchange:"myexchange", routingKey:"orange");

  将消息发送到Broker时会设置对应的routingkey

 channel.BasicPublish(exchange: "myexchange",routingKey: "orange", basicProperties: null, body: body);

  只有RoutingKey和BindingKey完全相同时,exchange才会把消息路由到绑定的queue中去寻ios马甲包技术大大 重新 长期合作QQ51286559

2 代码示例

  我们知道了direact类型的交换机只有routingKey和bindingKey相同的时候才会进行消息路由,根据这一特点我们可以通过routingKey将消息路由到不同的queue中。如在进行日志处理时,需求是所有的日志都保存到文本文件,出现错误日志时则还需要短信通知以便及时处理。我们可以创建两个队列:只接收错误日志的log_error队列和接收所有日志信息的log_all队列。消费者C1处理log_error队列中消息,将这些消息通过短信通知管理员,消费者C2处理log_all队列的信息,将这些信息记录到文本文件。

  生产者用于发送日志消息,代码如下:

 View Code

  消费者C1用于处理log_error队列中的消息,错误消息进行短信通知,代码如下:

 View Code

  消费者C2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值