第四个模型就是 路由的模型,这个就是多了一个路由键,消息里面有路由键,队列里面有路由键,只有路由键匹配之后,才可以消费者获取到数据。
生产者
@Test
void testRouter() {
rabbitTemplate
.convertAndSend("directs","info","direct 模型里面发送的消息");
}
这个生产者在发送消息的时候,就可以在这个消息里面加路由键了。
消费者
@Component
public class RouteConsumer {
@RabbitListener(bindings
= {
@QueueBinding(
value
= @Queue,
exchange
= @Exchange(value
= "directs",type
= "direct"),
key
= {"info","error","warn"}
)
})
public void receivel(String message
){
System
.out
.println("message1="+message
);
}
@RabbitListener(bindings
= {
@QueueBinding(
value
= @Queue,
exchange
= @Exchange(value
= "directs",type
= "direct"),
key
= {"error"}
)
})
public void receive2(String message
){
System
.out
.println("message2="+message
);
}
}
因为发送者已经发送了加路由键 的信息,所以消费者也要写对应的路由键,这样路由键进行匹配之后,才可以接受到对应的数据。