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

大菜菜学习RabbitMQ——第八篇

时间:2024-04-09 15:55:50浏览次数:23  
标签:return 第八篇 菜菜 durable RabbitMQ Queue Bean directExchange public

本篇文章主要讲如何用java代码创建队列和交换机,或者说是声明

 我们都是在消费者这边进行声明

所以我们开始写代码

 我们先创建这么个文件

package com.itheima.consumer.config;

import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 功能:
 * 作者:LiCooer
 * 日期:2024/4/9 14:52
 */
@Configuration
public class FanoutConfiguration {

    @Bean
    public FanoutExchange fanoutExchange() {
//        ExchangeBuilder.fanoutExchange("").build(); //这里也可以这么写
        return new FanoutExchange("hmall.fanout2");
    }

    @Bean
    public Queue fanoutQueue3() {
//        QueueBuilder.durable("").build(); //这里的durable是持久的意思
        return new Queue("fanout.queue3");
    }

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

    @Bean
    public Queue fanoutQueue4() {
//        QueueBuilder.durable("").build(); //这里的durable是持久的意思
        return new Queue("fanout.queue4");
    }

    @Bean
    public Binding fanoutBinding4() {
        return BindingBuilder.bind(fanoutQueue4()).to(fanoutExchange());
    }
}

只要我们一运行我们就可以看到

 但这个只是fanout,如果我们是direct呢

所以我们在同目录下面创建文件

package com.itheima.consumer.config;

import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 功能:
 * 作者:LiCooer
 * 日期:2024/4/9 14:52
 */
@Configuration
public class DirectConfiguration {

    @Bean
    public DirectExchange directExchange() {
//        ExchangeBuilder.fanoutExchange("").build(); //这里也可以这么写
        return new DirectExchange("hmall.direct1");
    }

    @Bean
    public Queue directQueue3() {
//        QueueBuilder.durable("").build(); //这里的durable是持久的意思
        return new Queue("direct.queue3");
    }

    @Bean
    public Binding directQueue3BindingRed(Queue directQueue3 , DirectExchange directExchange) {
        return BindingBuilder.bind(directQueue3).to(directExchange).with("red");
    }

    @Bean
    public Binding directQueue3BindingBlue(Queue directQueue3 , DirectExchange directExchange) {
        return BindingBuilder.bind(directQueue3).to(directExchange).with("blue");
    }

    @Bean
    public Queue directQueue4() {
//        QueueBuilder.durable("").build(); //这里的durable是持久的意思
        return new Queue("direct.queue4");
    }

    @Bean
    public Binding directQueue4BindingRed(Queue directQueue4 , DirectExchange directExchange) {
        return BindingBuilder.bind(directQueue4).to(directExchange).with("red");
    }

    @Bean
    public Binding directQueue4BindingBrown(Queue directQueue4 , DirectExchange directExchange) {
        return BindingBuilder.bind(directQueue4).to(directExchange).with("brown");
    }
}

交换机还有队列就不多赘述了

 很显然,很麻烦,所以祝贺各位变成白学公主

标签:return,第八篇,菜菜,durable,RabbitMQ,Queue,Bean,directExchange,public
From: https://www.cnblogs.com/codeforceshobby/p/18124053

相关文章

  • 大菜菜学习RabbitMQ——第七篇
    这一篇文章我们讲的是另一个转换机topic转换机topic:话题相对于其他交换机来说这个交换机有很强的灵活性首先我们需要创建两个queue,名字的话这样就可以 然后创建对应的交换机在这里交换机的类型应该要选择为topic然后我们就可以开始binding了 这里我们看到有个符号我们......
  • 大菜菜学习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的延迟插件实现消息队列的延迟功能。如何安装......