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

相关推荐
我爱娃哈哈1 小时前
分布式事务在分片场景下,TCC和Seata到底怎么选?一线实战全解析!
分布式·后端
Pitayafruit5 小时前
【📕分布式锁通关指南 12】源码剖析redisson如何利用Redis数据结构实现Semaphore和CountDownLatch
redis·分布式·后端
久念祈5 小时前
C++ - 仿 RabbitMQ 实现消息队列--客户端模块实现
分布式·rabbitmq
Code季风6 小时前
分布式系统中的幂等性设计:从理论到实现的全面指南
redis·分布式·微服务
dessler6 小时前
RabbitMQ-日常运维命令
linux·运维·rabbitmq
都叫我大帅哥7 小时前
RabbitMQ惰性队列:拯救内存的“树懒”战士 🦥
java·rabbitmq
右手嘚温暖13 小时前
分布式事务Seata、LCN的原理深度剖析
spring boot·分布式·后端·spring·spring cloud·中间件·架构
vision_wei_17 小时前
Redis中间件(二):Redis协议与异步方式
网络·数据库·c++·redis·分布式·缓存·中间件
爱学习的小熊猫_19 小时前
在Linux上部署RabbitMQ、Redis、ElasticSearch
linux·redis·elasticsearch·中间件·rabbitmq
风与尘19 小时前
RabbitMQ延时队列的两种实现方式
spring boot·分布式·中间件·rabbitmq