上一篇说了两种RabbitMQ的两种模式,这篇说一下,routing转发模式
routing转发模式
这种模式交换机配置为direct(直连)类型交换机,转发的规则变为检查队列routing key值。如果生产者和消费者routing ley值相同,则转发。否则丢弃。
流程图
看见routing key 是不是很眼熟,好像在哪里见过,对,在简单模式的代码里面其实是有做路由键的配置的。
//Direct交换机 起名:LycDirectExchange
@Bean
DirectExchange LycDirectExchange() {
return new DirectExchange("lycDirectExchange",true,false);
}
//绑定 将队列和交换机绑定, 并设置用于匹配键:lycDirectRouting
@Bean
Binding bindingDirect() {
return BindingBuilder.bind(LycDirectQueue()).to(LycDirectExchange()).with("lycDirectRouting");
}
现在发现原来简单模式和Routing转发模式是一样的啊。其实并不是。
简单模式:demo级别的,使用的是默认交换机,其中交换机参数并没有配置。
Routing转发:配置交换机属性,例如名称,和路由键绑定信息
他们的相同点就是:都是直连交换机
在绑定队列时会设定一个routing key,只有在消息的routing key与队列匹配时,消息才会被交换机投送到绑定的队列中。允许一个队列通过一个固定的routing key进行绑定。direct Exchange将消息根据其routing key属性投递到包含对应的可以属性的绑定器上。direct Exchange是RabbitMQ默认的交换机模式,也是最简单的。他是根据routing key全文匹配去寻找队列。
下一篇我们说一下,主题转发模式,交换机类型是topic。