springboot连接rabbitmq报错:Failed to checkredeclare auto-delete queue(s)

本文主要介绍了在SpringBoot项目中遇到连接RabbitMQ报错的问题,包括错误原因分析和解决步骤。错误源于配置错误、端口未开放、权限问题、virtual-host不匹配等。最终解决方案是检查并修正了Docker中RabbitMQ容器的端口映射,确保配置文件与实际端口一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

springboot项目使用spring-boot-starter-amqp连接rabbitmq时出现报错:

Failed to check/redeclare auto-delete queue(s).

思路

这类问题是因为没有连接上rabbitmq导致的,一般可以的原因有如下几种:

  • 1、springboot中的配置文件配置的不对,这其中又分为:
    (1)配置项格式出错,比如yml格式常见的配置项错位
    (2)rabbitmq地址错误
    (3)端口错误

这里给出一个最基本的配置项作为参考

spring:
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
    virtual-host: /
  • 2、rabbitmq所在服务器或虚拟机中的对应端口没有打开,比如默认的5672端口没有开放,如果是外网地址的,还要打开内外网端口映射。这一点可以通过telnet指令检查

    telnet 192.168.1.1 5672

  • 3、rabbitmq地址有误,或者rabbitmq所在服务器的网络存在问题,无法连接,这点可以通过ping来测试

    ping 192.168.1.1

  • 4、配置的账号没有开通对应权限
    进入rabbitmq管理页面的用户页面后可以看到对应的账户是否有开通权限,如图所示即没有开通权限
    在这里插入图片描述
    点击对应的用户名,进入权限设置页面

如图所示,我们给予其配置、读、写的权限,并将其赋予管理员角色
在这里插入图片描述
配置之后再看用户权限就发生了变化了
在这里插入图片描述

  • 5、virtual-host配置的有误,springboot中配置的virtual-host与rabbitmq中的virtual-host没有对应上,需要注意的是如果在rabbitmq中配置的virtual-host叫xxx的话,那么springboot中的也一定是xxx,而不需要再之前加上/

最终解决

错误基本也就是这几种,因为我是docker安装的rabbitmq,最后仔细筛查后发现,原来不小心把创建容器时的映射端口号设置成了5673,而配置文件中写的又是5672,导致一直连接不上。

这也提醒我们,配置的时候一定要细心,否则会出现很多非常不好排查的错误

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值