第三个模型是广播模型,这个模型里面就要使用交换机了,
生产者
@Test
void testFanout() {
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")
)
})
现在我们创建多个消费者,那么多个消费者都会接受到消息,因为这个是广播的模型