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


    问题

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

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

    思路

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

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

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

    spring:
      rabbitmq:
        host: localhost
        port: 5672
        username: guest
        password: guest
        virtual-host: /
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    计算机组成原理之浮点四则运算
    nacos(二):nacos配置管理功能
    海量数据场景下的算法问题1:透彻理解从40个亿中产生一个不存在的整数
    Three.js如何计算3DObject的2D包围框?
    Small Tools(4) 整合Seata1.5.2分布式事务
    发明了杀毒软件之后,他选择做一个极品混混
    猿创征文 【SpringBoot2】基于SpringBoot实现SSMP整合
    MySQL如何确定查询处理各个阶段所消耗的时间
    我的名字叫大数据:第5章 我如何思考?
    iOS面试准备 - ios篇
  • 原文地址:https://blog.csdn.net/m0_67391121/article/details/126115547