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

it2026-08-12  12

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

生产者

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

消费者

@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); } }

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

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

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

@RabbitListener(bindings = { @QueueBinding( value = @Queue, //创建临时队列 exchange = @Exchange(value = "logs",type = "fanout") //绑定的交换机 ) })

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

最新回复(0)