第四个模型就是 路由的模型,这个就是多了一个路由键,消息里面有路由键,队列里面有路由键,只有路由键匹配之后,才可以消费者获取到数据。

生产者

    @Test
    void testRouter() {
   
//使用rabbitmq直接往队列里面放数据
// convertAndSend()第一个参数 是
        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);
    }
}

因为发送者已经发送了加路由键 的信息,所以消费者也要写对应的路由键,这样路由键进行匹配之后,才可以接受到对应的数据。