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

相关推荐
大飞哥~BigFei21 小时前
RabbitMq消费延迟衰减重试实现思路
java·分布式·rabbitmq
java_logo1 天前
NGINX WEBUI Docker 容器化部署指南
运维·nginx·docker·容器·centos·rabbitmq·运维开发
小泊客1 天前
使用讯飞星火 Spark X1-32K 打造本地知识助手
大数据·分布式·spark·大模型应用·本地知识助手
Ace_31750887761 天前
京东关键字搜索接口逆向:从动态签名破解到分布式请求调度
分布式·python
❀͜͡傀儡师1 天前
使用DelayQueue 分布式延时队列,干掉定时任务!
java·分布式·delayqueue·spingboot
失散131 天前
分布式专题——55 ElasticSearch性能调优最佳实践
java·分布式·elasticsearch·架构
easy_coder2 天前
MinIO:云原生时代的分布式对象存储从入门到精通
分布式·云原生
L.EscaRC2 天前
ArkTS分布式设计模式浅析
分布式·设计模式·arkts
q***33372 天前
Spring Boot 中 RabbitMQ 的使用
spring boot·rabbitmq·java-rabbitmq
观望过往2 天前
Spring Boot 与 RabbitMQ 集成示例
spring boot·rabbitmq·java-rabbitmq