目录
通过消息队列demo项目进行练习 相关配置看此贴 http://t.csdnimg.cn/hPk2T
注意 生产者消费者的yml文件也要配置好

Fanout 交换机是 AMQP(高级消息队列协议)中的一种交换机类型,它将消息广播到所有与该交换机绑定的队列上。无论消息发送者将消息发送到哪个队列,所有绑定到该 Fanout 交换机的队列都会收到相同的消息副本。
Fanout 交换机常用于需要广播消息给多个消费者的场景,例如发布订阅模式中的订阅者通常会使用 Fanout 交换机来接收发布者发送的消息。在 RabbitMQ 中,Fanout 交换机是其中一种常见的交换机类型,提供了简单且有效的消息广播机制。
Fanout 交换机的特点包括:




- package cn.itcast.mq.lintener;
-
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.amqp.rabbit.annotation.RabbitListener;
- import org.springframework.stereotype.Component;
-
- @Slf4j
- @Component
- public class MQListener {
-
- @RabbitListener(queues = "fanout.queue1")
- public void listenFanoutQueue1(String message) {
- log.info("消费者1收到了消息:........... {}", message);
- // System.out.println("消费者收到了消息: " + message);
- }
-
- @RabbitListener(queues = "fanout.queue2")
- public void listenFanoutQueue2(String message) {
- log.info("消费者2收到了消息: {}", message);
- // System.out.println("消费者收到了消息: " + message);
- }
-
- }
- package cn.itcast.mq.helloworld;
-
- import org.apache.logging.log4j.message.Message;
- import org.junit.jupiter.api.Test;
- import org.springframework.amqp.rabbit.core.RabbitTemplate;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.context.SpringBootTest;
- import org.springframework.messaging.converter.StringMessageConverter;
-
- @SpringBootTest
- public class SpringAMQPTest {
-
- @Autowired
- private RabbitTemplate rabbitTemplate;
-
- // fanout交换机
- @Test
- void testFanoutExchange(){
- String exchangeName = "hmall.fanout";
- String message = "hello, fanout 交换机";
- rabbitTemplate.convertAndSend(exchangeName,"", message);
- }
- }
成功向两个消费者广播了同一条消息
