栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

RabbitMq生产者未使用队列如何自动创建队列

RabbitMq生产者未使用队列如何自动创建队列

最近项目在进行rabbitMq项目集成时,出现一个其问题,在生产者启动后未生产的时候,消费者启动会报错404找不到队列,网站大部分文档都没有说清楚;补充一个作为记录

第一步:需要在生产者配置中显示声明RabbitAdmin

    @Bean
    public RabbitAdmin rabbitAdmin(ConnectionFactory connectionFactory) {
        RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory);
        rabbitAdmin.setAutoStartup(true);
        return rabbitAdmin;
    }

第二步:在Queue创建时显示声明

    @Bean
    public Queue initHighDataQueue() {
        Console.log("rabit生产者被声明");
        Queue queue = new Queue(MqQueueConst.HIGH_DATA_EXCHANGE, true, false, false);
        rabbitAdmin.declareQueue(queue);
        return queue;
    }

启动后即可在日志中看到如下结果:

2022-02-12 11:09:27.374 INFO  --- [           main] o.s.a.r.c.CachingConnectionFactory       : Attempting to connect to: [localhost:5672]
2022-02-12 11:09:27.451 INFO  --- [           main] o.s.a.r.c.CachingConnectionFactory       : Created new connection: rabbitConnectionFactory#5516ee5:0/SimpleConnection@63c66980 [delegate=amqp://cloud@127.0.0.1:5672/cloud, localPort= 38784]

完整代码如下:

import cn.hutool.core.lang.Console;
import com.scentralit.platform.sdk.constans.MqQueueConst;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabitConfig {
    @Autowired
    private RabbitAdmin rabbitAdmin;

    @Bean
    public Queue initHighDataQueue() {
        Console.log("rabit生产者被声明");
        Queue queue = new Queue(MqQueueConst.HIGH_DATA_EXCHANGE, true, false, false);
        rabbitAdmin.declareQueue(queue);
        return queue;
    }

    @Bean
    public RabbitAdmin rabbitAdmin(ConnectionFactory connectionFactory) {
        RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory);
        rabbitAdmin.setAutoStartup(true);
        return rabbitAdmin;
    }
}

参考链接:【完美解决】SpringBoot整合rabbitmq “Failed to declare queue(s)“_shang_0122的博客-CSDN博客https://blog.csdn.net/shang_0122/article/details/117404515

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

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

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