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会将消息路由到每个绑定的队列

相关推荐
豆浆whisky3 小时前
Go分布式追踪实战:从理论到OpenTelemetry集成|Go语言进阶(15)
开发语言·分布式·golang
乌恩大侠4 小时前
DGX Spark 恢复系统
大数据·分布式·spark
happy_king_zi5 小时前
RabbitMQ Quorum 队列与classic队列关系
分布式·rabbitmq
labview_自动化7 小时前
RabbitMQ
分布式·rabbitmq·labview
歪歪1008 小时前
详细介绍一下“集中同步+分布式入库”方案的具体实现步骤
开发语言·前端·分布式·后端·信息可视化
JavaArchJourney9 小时前
数据库分库分表
数据库·分布式
熙客10 小时前
Kafka:专注高吞吐与实时流处理的分布式消息队列
分布式·中间件·kafka
西岭千秋雪_12 小时前
Zookeeper数据结构
java·数据结构·分布式·zookeeper
happy_king_zi12 小时前
RabbitMQ直接查看队列中消息的内容
分布式·rabbitmq
车江毅13 小时前
亿级O2O(智能设备)系统架构笔记【原创】
java·分布式·技术战略规划