首页 > 其他分享 >大菜菜学习RabbitMQ——第五篇

大菜菜学习RabbitMQ——第五篇

时间:2024-04-09 11:44:41浏览次数:23  
标签:fanout String 菜菜 queue2 RabbitMQ 交换机 第五篇 msg 我们

今天这篇文章想要讲的是交换机,有三个交换机,fanout,direct,topic,这篇文章里面我要写的是fanout交换机

fanout:广播

广播顾名思义就是所有都通知到,所以在发送消息时,所有的queue都可以收到消息

首先我们需要先建立一个交换机,在rabbitmq可视化界面当中我们创建一个交换机

 在这里写一个name还有一个type,很显然,我们需要一个fanout类型的交换机,所以我们选择fanout

 然后绑定我们新建的这个队列,当然我们应该先创建队列,这里取名字就是fanout.queue1,fanout.queue2

然后我们就用java代码开始操作

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

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

这里我创建了两个消费者

然后我们写个单元测试,然后参数需要变成交换机的参数,第二个参数是什么呢,其实是routingKey,我们这里写null就是说没有任何routingKey,当然你直接写""同样是可以

@Test
    void testSendFanout() {
        String exchangeName = "hmall.fanout";
        String msg = "hello , everyone!";
        rabbitTemplate.convertAndSend(exchangeName , null , msg);
    }

然后我们重新运行,我们就会发现

很显然两个队列都收到了消息,所以才会产生监听

所以广播就是这个样子实现

标签:fanout,String,菜菜,queue2,RabbitMQ,交换机,第五篇,msg,我们
From: https://www.cnblogs.com/codeforceshobby/p/18123614

相关文章

  • 大菜菜学习RabbitMQ——第三篇
    这一节讲的是啥呢,总的来说这个其实是监听,是在消费者模块里面写的东西 在这里你会发现我们并没有在test里面写代码,而是在这个主类里面写代码了,这个mqlistener就是一个监听器那我们来看看这个功能要怎么写代码首先是最重要:写配置文件!!!我真的服了我写代码的时候忘记配置了,然后一......
  • 大菜菜学习RabbitMQ——第二篇
    我在上一节讲述了如何使用Rabbitmq图形化界面在我们学习这个的基础使用,然后我们现在就要做的就是用java进行rabbitmq操作首先在黑马课上有一个mq-demo文件这个资料,各位可以去微信程序里面下载对应资料包,然后会在百度网盘里链接:https://pan.baidu.com/s/1VFdBOQYZVACxUBkzBuLVHA......
  • 大菜菜学习RabbitMQ——第一篇
    现在开始呢我在学MQ,首先这篇博客,如果需要借鉴的话,前提是,你要有消息队列对应的前置知识,如果没有的话可以去B站或者去其他的博客上面学习不多逼逼,现在开始首先是localhost:15672,如果你下载好了rabbitmq,这个应该是很不陌生的,对于刚开始使用者来说就是guest,但是我们其实可以添加用户......
  • RabbitMQ经典知识
    消息可靠性投递消息的可靠性投递主要是保证消息投递的每一个环节都要成功RabbitMQ整个消息投递路径为Producer-》Broker-》Exchange-》Queue-》Consumer生产者到交换机Producer发送到Exchange的过程依靠RabbitMQ的Confirm机制来确保可靠性生产者投递消息到了Broker里的Exc......
  • Kafka、ActiveMQ、RabbitMQ、RocketMQ四大消息队列优劣对比与选择指南
    在分布式系统架构中,消息队列(MessageQueue,MQ)扮演着至关重要的角色,它作为异步通信的核心组件,能够实现系统解耦、削峰填谷、数据缓冲等功能。本文将聚焦于四大主流消息队列——Kafka、ActiveMQ、RabbitMQ、RocketMQ,深度剖析它们各自的优缺点,并在最后提供一份详尽的选择指南,以助......
  • 如何使用Java和RabbitMQ实现延迟队列(方式二)?
    前言昨天写了一篇关于Java和RabbitMQ使用插件实现延迟队列功能的文章,今天来讲下另外一种方式,不需要RabbitMQ的插件。前期准备,需要安装好docker、docker-compose的运行环境。需要安装RabbitMQ的可以看下面这篇文章。如何使用PHP和RabbitMQ实现消息队列?-CSDN博客使用RabbitM......
  • 如何使用Java和RabbitMQ实现延迟队列?
    前言今天我们使用Java和RabbitMQ实现消息队列的延迟功能。前期准备,需要安装好docker、docker-compose的运行环境。需要安装RabbitMQ的可以看下面这篇文章。如何使用PHP和RabbitMQ实现消息队列?-CSDN博客今天讲的是依赖RabbitMQ的延迟插件实现消息队列的延迟功能。如何安装......
  • rabbitmq
    消费端限流/**设置限流机制*param1:prefetchSize,消息本身的大小如果设置为0那么表示对消息本身的大小不限制*param2:prefetchCount,告诉rabbitmq不要一次性给消费者推送大于N个消息*param3:global,是否将上面的设置应用于整个通道,false表示只应用于当前消费者......
  • Spring Boot 集成 RabbitMQ(一)
    1、RabbitMQ和SpringBoot的基础概念RabbitMQ 是一个开源的MQ(MessageQueue,消息队列)客户端服务器实现,遵循AMQP(AdvancedMessageQueuingProtocol)协议。它允许应用发送消息并不直接传递到目标对象,而是通过交换器,队列,绑定的方式进行处理和转发,从而实现应用的解耦,异步......
  • 第五篇:3.4 用户归因和受众(User attribution and audience) - IAB/MRC及《增强现实广告
    翻译计划第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇广告效果测量定义和其他矩阵之-3.1广告印象(ADImpression)第三篇广告效果测量定义和其他矩阵之-3.2可见性(Viewability)第四篇广告效果测量定义和其他矩阵之-3.3无效流量(Invali......