栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringAMQP发布订阅模型-Fanout Exchange

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringAMQP发布订阅模型-Fanout Exchange

简介:允许将同一条消息发送给多个消费者;

实现方式:加入exchange交换机。

exchange常见类型包括:

1、fanout:广播

2、Direct:路由

3、Topic话题

注意:exchange负责消息路由,而不是存储,路由失败则消息丢失。

 发布订阅-Fanout Exchange

Fanout Exchange 会将接收到的消息路由到每一个跟其绑定的queue

 

 

 代码:

@Configuration
public class FanoutConfig {
    
    @Bean
    public FanoutExchange fanoutExchange() {
        return new FanoutExchange("wsy.fanout");

    }

    
    @Bean
    public Queue fanoutQueue1() {
        return new Queue("fanout.queue1");
    }

    
    @Bean
    public Queue fanoutQueue2() {
        return new Queue("fanout.queue2");
    }

    
    @Bean
    public Binding bindingQueue1(Queue fanoutQueue1,FanoutExchange fanoutExchange){
        return BindingBuilder.bind(fanoutQueue1).to(fanoutExchange);
    }

    
    @Bean
    public Binding bindingQueue2(Queue fanoutQueue2,FanoutExchange fanoutExchange){
        return BindingBuilder.bind(fanoutQueue2).to(fanoutExchange);
    }

 结果:

 消息接收
        @RabbitListener(queues = "fanout.queue1")
    public void listenFanoutQueue1Message(String msg)throws InterruptedException {
        System.out.println("消费者接收到fanout.queue1消息:{"+ msg + "}");
    }

    @RabbitListener(queues = "fanout.queue2")
    public void listenFanoutQueue2Message(String msg)throws InterruptedException {
        System.out.println("消费者接收到fanout.queue2消息:{"+ msg + "}");
    }
 消息发送
    @Test
    public void testSendFanoutExchange() {
        //交换机名称
        String exchangeName = "wsy.fanout";

        //消息
        String message = "hello,FanoutExchange";

        //发送消息
        rabbitTemplate.convertAndSend(exchangeName, "",message);


    }

成功

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/328642.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号