springboot整合rabbitMQ系列(三)fanout的模型,也就是广播的模型

2020-11-20 14:54:55 浏览数 (1)

第三个模型是广播模型,这个模型里面就要使用交换机了,

生产者

代码语言:javascript复制
    @Test
    void testFanout() {
//使用rabbitmq直接往队列里面放数据
//        convertAndSend()第一个参数   是
        rabbitTemplate.convertAndSend("logs","","Fanout 模型里面发送的消息");
    }

消费者

代码语言:javascript复制
    @Component
    public class FanoutCustomer {

    @RabbitListener(bindings = {
            @QueueBinding(
                    value = @Queue,  //创建临时队列
                    exchange = @Exchange(value = "logs",type = "fanout")  //绑定的交换机
            )
    })
    public void receivel(String message){
        System.out.println("message1=" message);
    }




    @RabbitListener(bindings = {
            @QueueBinding(
                    value = @Queue,  //创建临时队列
                    exchange = @Exchange(value = "logs",type = "fanout")  //绑定的交换机
            )
    })
    public void receive2(String message){
        System.out.println("message2=" message);
    }
}

生产者在交换机里面发送了消息,发送者的第一个参数就是交换机。

既然在交换机里面已经接受到了消息

现在使用广播的形式在消费端进行接收消息,因为交换机和队列需要绑定,所以,我们在消费端可以直接使用绑定的注解,将队列和交换机进行绑定。注解就是如下的这种情况

代码语言:javascript复制
   @RabbitListener(bindings = {
            @QueueBinding(
                    value = @Queue,  //创建临时队列
                    exchange = @Exchange(value = "logs",type = "fanout")  //绑定的交换机
            )
    })

现在我们创建多个消费者,那么多个消费者都会接受到消息,因为这个是广播的模型

0 人点赞