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博客icon-default.png?t=M0H8https://blog.csdn.net/shang_0122/article/details/117404515

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值