rabbitmq基础-java-3、Fanout交换机

1、简介

Fanout,英文翻译是扇出。

2、 特点

1) 可以有多个队列

2) 每个队列都要绑定到Exchange(交换机)

3) 生产者发送的消息,只能发送到交换机

4) 交换机把消息发送给绑定过的所有队列

5) 订阅队列的消费者都能拿到消息

3、设置队列

4、设置交换机

5、绑定队列

6、设置生产者

java 复制代码
    @Test
    void testSendFanout() {
        String exchangeName = "test.fanout";
        String msg = "hello, everyone!";
        rabbitTemplate.convertAndSend(exchangeName, null, msg);
    }

7、设置消费者

java 复制代码
    @RabbitListener(queues = "fanout.queue1")
    public void listenFanoutQueue1(String msg) throws InterruptedException {
        System.out.println("消费者1 收到了 fanout.queue1的消息----:【" + msg +"】");
    }

    @RabbitListener(queues = "fanout.queue2")
    public void listenFanoutQueue2(String msg) throws InterruptedException {
        System.out.println("消费者2 收到了 fanout.queue2的消息====:【" + msg +"】");
    }

8、测试

9、总结

交换机的作用是什么?

  • 接收publisher发送的消息

  • 将消息按照规则路由到与之绑定的队列

  • 不能缓存消息,路由失败,消息丢失

  • FanoutExchange会将消息路由到每个绑定的队列

相关推荐
蒋士峰DBA修行之路13 小时前
实验二十二 GaussDB分布式场景调优
分布式·gaussdb
2501_9411440314 小时前
基于 Kotlin 与 Spring Boot 构建高并发企业级微服务系统的架构实践分享
rabbitmq
2501_9410891914 小时前
自动驾驶场景下基于 C++ 构建高性能多传感器融合与实时决策系统的架构设计与工程实践分享
rabbitmq
2501_9418008815 小时前
区块链与互联网:重塑信任、去中心化的数字时代
rabbitmq
2501_9411481515 小时前
基于 Scala 与 Akka 构建高并发分布式系统与消息驱动微服务实践分享
rabbitmq
2501_9411474215 小时前
基于 Scala 与 Akka 构建高并发分布式微服务与实时事件处理系统实践分享
rabbitmq
2501_9411495015 小时前
微服务架构下基于Java构建分布式订单处理与库存管理系统的高并发优化实践经验分享
rabbitmq
青靴16 小时前
轻量级 CI/CD 实战(三):Kafka消费者Docker容器化部署
分布式·docker·kafka
galaxyffang17 小时前
RocketMQ 为什么性能不如 Kafka?
分布式·kafka·rocketmq
2501_9411440317 小时前
API网关与接口聚合在高并发互联网系统架构优化与实践经验分享
rabbitmq