第四个模型就是 路由的模型,这个就是多了一个路由键,消息里面有路由键,队列里面有路由键,只有路由键匹配之后,才可以消费者获取到数据。
生产者
代码语言:javascript复制 @Test
void testRouter() {
//使用rabbitmq直接往队列里面放数据
// convertAndSend()第一个参数 是
rabbitTemplate.convertAndSend("directs","info","direct 模型里面发送的消息");
}
这个生产者在发送消息的时候,就可以在这个消息里面加路由键了。
消费者
代码语言:javascript复制@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);
}
}
因为发送者已经发送了加路由键 的信息,所以消费者也要写对应的路由键,这样路由键进行匹配之后,才可以接受到对应的数据。