RabbitMQ-direct直通模式

RabbitMQ-direct直通模式

     direct: 把Exchange上的消息发送到匹配routing key的队列中。
     消费者队列绑定关键字到交换机上,发送者将数据根据关键字发送到交换机上,交换机根据关键字去遍历绑定到它上面的队列,将数据发送至指定关键字的队列。
在这里插入图片描述
     在上图中,有两个队列绑定到direct类型的交换机“X”。第一个队列绑定关键字orange,第二个有2个绑定关键字,一个是black,另一个是green。在这种设置下,有orange绑定关键字的消息会被交换机发送到队列Q1。拥有black或green绑定关键字的消息将被发送到Q2。其它的所有消息将被丢弃。
     对于同一个关键字绑定到多个队列的情况也是可以的,如图所示:
在这里插入图片描述
     给一给交换机X和队列Q1添加绑定相同的关键字black。此时,direct交换机将和fanout表现的一样,广播消息到所有队列。关键字为balck的消息将被发送给Q1和Q2。
Direct模式下的消息是支持持久化的,当消费端不在线时,消息会存在对于的队列中(mq中交换机只是起到一个路由的功能,不存储消息,消息都是存储于队列中的),并不会丢失。消费端启动后到指定的队列上去取消息,会将该队列上所有的消息都取走。
代码例子参考另一篇文章RabbitMQ-fanout广播模式,只需要将交换机的类型修改为direct即可。

//声明交换机
	CExchange exchange(exchange_name, "direct", true, false);
	if (0 != mqClient.DeclareExchange(exchange, err))
	{
		return -1;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simple Simple

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值