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

大菜菜学习RabbitMQ——第七篇

时间:2024-04-09 14:34:39浏览次数:20  
标签:String 菜菜 queue2 RabbitMQ topic 第七篇 交换机 msg 我们

这一篇文章我们讲的是另一个转换机topic转换机

topic:话题

相对于其他交换机来说这个交换机有很强的灵活性

首先我们需要创建两个queue,名字的话这样就可以

 然后创建对应的交换机

在这里交换机的类型应该要选择为topic

然后我们就可以开始binding了

 这里我们看到有个符号我们一直都没有看到过,那就是‘#’,这个表示的是在后面存在0个或多个单词

然后我们先写两个消费者,这个就不多赘述了

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

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

然后我们写个单元测试

@Test
    void testSendTopic() {
        String exchangeName = "hmall.topic";
        String msg = "消息";
        rabbitTemplate.convertAndSend(exchangeName , "Japan.news" , msg);
    }

在这里,我们看到我们routingKey写的是Japan.news,所以topic.queue2会出现监听

 然后我们写个routingKey为china.news

 很显然在这里两个队列都接收到了消息

最后写一个china.people

 所以我们发现topic和direct其实真的很像,但是在使用的过程中更加灵活

 

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

相关文章

  • 大菜菜学习RabbitMQ——第六篇
    这一篇还是讲交换机,direct交换机direct:定向这个交换机其实是在binding的时候有一个对应的bindingKey,所以可以做到定向发送的意思,类似于私聊,但是如果bindingKey相同,其实等同于是fanout交换机,所以总的来说,direct这个交换机功能比fanout交换机更加强大,适用于更加复杂业务一开始,我......
  • 大菜菜学习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的延迟插件实现消息队列的延迟功能。如何安装......
  • 【Spring进阶系列丨第七篇】Spring框架新注解分类及详解
    文章目录一、Spring新注解1.1、Configuration注解1.1.1、定义一个类1.1.2、使用Configuration注解修饰类1.1.3、作用1.2、Bean注解1.2.1、定义bean1.2.2、在主配置类中注册bean1.2.3、测试容器中是否有该bean1.2.4、注册bean的同时可以指定bean名称1.2.5、补充内容1.2.5......