赞
踩
一、交换器类型
在rabbitmq中,生产者的消息都是通过交换器来接收,然后再从交换器分发到不同的队列中去,在分发的过程中交换器类型会影响分发的逻辑。
rabitmq中的交换器有4种类型,分别为fanout、direct、topic、headers四种,其中前三种较为常见,后面一种用的比较少。
二、fanout
一般情况下交换器分发会先找出绑定的队列,然后再判断routekey,来决定是否将消息分发到某一个队列中;但如果交换器的类型为fanout,那么交换器就不再判断routekey了,而是将消息直接分发到绑定的队列中去,如下测试代码
- Channel channel = connection.createChannel(); //在rabbitmq中创建一个信道
- channel.exchangeDeclare("exchangeName", "fanout"); //创建一个type为fanout的交换器
- channel.queueDeclare("queueName"); //创建一个队列
- channel.queueBind("queueName", "exchangeName", "routingKey"); //将队列和交换器绑定
三、direct
在类型为direct的情况下,交换器在分发消息的时候同样会先获取绑定的队列,然后还会再判断routeing;当交换器发现类型为direct判断routeing的规则是完全匹配模式,只有消息完全等于到routeing的时候,才会将消息分发到指定队列;
一个队列是可以指定多个路由键的,我们假设
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。