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

大菜菜学习RabbitMQ——第六篇

时间:2024-04-09 13:44:45浏览次数:22  
标签:String 菜菜 queue2 direct RabbitMQ 交换机 msg void 第六篇

这一篇还是讲交换机,direct交换机

direct:定向

这个交换机其实是在binding的时候有一个对应的bindingKey,所以可以做到定向发送的意思,类似于私聊,但是如果bindingKey相同,其实等同于是fanout交换机,所以总的来说,direct这个交换机功能比fanout交换机更加强大,适用于更加复杂业务

一开始,我们同样需要创建几个队列

然后我们需要建立一个新的交换机

在这里,我们需要将这个转换机滴类型选择为direct类型

 

然后我们需要bind,但是最重要事情是,我们需要在这里加上routingKey

 

然后我们写上direct.queue2

 然后我们书写消费者,监听对应的消息

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

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

然后我们写对应方法表示发出信息

@Test
    void testSendDirect() {
        String exchangeName = "hmall.direct";
        String msg = "红色";
        rabbitTemplate.convertAndSend(exchangeName , "red" , msg);
    }

这里我们可以发现,在这里因为routingKey = "red",这两个队列里面都有对应的参数,所有两个队列都可以收到消息

然后我们让routingKey变成blue

 然后同理可知

 所以根据这些例子应当可以知道这个的功能是什么

标签:String,菜菜,queue2,direct,RabbitMQ,交换机,msg,void,第六篇
From: https://www.cnblogs.com/codeforceshobby/p/18123657

相关文章

  • 大菜菜学习RabbitMQ——第五篇
    今天这篇文章想要讲的是交换机,有三个交换机,fanout,direct,topic,这篇文章里面我要写的是fanout交换机fanout:广播广播顾名思义就是所有都通知到,所以在发送消息时,所有的queue都可以收到消息首先我们需要先建立一个交换机,在rabbitmq可视化界面当中我们创建一个交换机 在这里写一个......
  • 大菜菜学习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)协议。它允许应用发送消息并不直接传递到目标对象,而是通过交换器,队列,绑定的方式进行处理和转发,从而实现应用的解耦,异步......