RabbitMQ - 04 - Fanout交换机 (广播)

目录

部署demo项目

什么是Fanout交换机

实现Fanout交换机

1.控制台

声明队列

声明交换机

将交换机与队列绑定

2.编写消费者方法

3.编写生产者测试方法


部署demo项目

通过消息队列demo项目进行练习  相关配置看此贴   http://t.csdnimg.cn/hPk2T

注意  生产者消费者的yml文件也要配置好

什么是Fanout交换机

        Fanout 交换机是 AMQP(高级消息队列协议)中的一种交换机类型,它将消息广播到所有与该交换机绑定的队列上。无论消息发送者将消息发送到哪个队列,所有绑定到该 Fanout 交换机的队列都会收到相同的消息副本。

        Fanout 交换机常用于需要广播消息给多个消费者的场景,例如发布订阅模式中的订阅者通常会使用 Fanout 交换机来接收发布者发送的消息。在 RabbitMQ 中,Fanout 交换机是其中一种常见的交换机类型,提供了简单且有效的消息广播机制。

Fanout 交换机的特点包括:

  1. 广播消息:Fanout 交换机会将消息广播到所有与之绑定的队列,无视消息的路由键。
  2. 简单配置:不需要对消息进行路由规则匹配,只需将队列绑定到 Fanout 交换机即可。
  3. 适用广泛:适用于需要一次性将消息发送给多个消费者的场景,如日志广播、实时通知等。

实现Fanout交换机

1.控制台

声明队列

声明交换机

将交换机与队列绑定

2.编写消费者方法

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

}

3.编写生产者测试方法

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

成功向两个消费者广播了同一条消息

相关推荐

  1. RabbitMq——direct交换器fanout交换器 扇形交换器

    2024-03-11 18:40:03       23 阅读
  2. RabbitMQ02-RebbitMQ简介及交换器

    2024-03-11 18:40:03       11 阅读
  3. RabbitMQ交换机

    2024-03-11 18:40:03       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 18:40:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 18:40:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 18:40:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 18:40:03       20 阅读

热门阅读

  1. 01.AJAX 概念和 axios 使用

    2024-03-11 18:40:03       22 阅读
  2. K8S Service

    2024-03-11 18:40:03       24 阅读
  3. Linux进程初步理解

    2024-03-11 18:40:03       25 阅读
  4. SpringBoot中事务

    2024-03-11 18:40:03       26 阅读
  5. Android10禁用wifi随机mac地址,固定mac地址

    2024-03-11 18:40:03       21 阅读
  6. 小蓝的钥匙(蓝桥杯错排)

    2024-03-11 18:40:03       23 阅读
  7. JDBC编程(数据库编程)

    2024-03-11 18:40:03       22 阅读
  8. 视觉信息处理和FPGA实现第二次作业

    2024-03-11 18:40:03       23 阅读
  9. 获取webshell的十种方法

    2024-03-11 18:40:03       20 阅读
  10. Docker与低代码开发:重塑软件开发的未来

    2024-03-11 18:40:03       21 阅读
  11. 计算机视觉(CV)技术的优势和挑战

    2024-03-11 18:40:03       22 阅读