You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

应用启动后RabbitMQ连接被拒绝问题排查求助

RabbitMQ连接被拒绝问题排查与解决

问题概述

应用启动后触发RabbitMQ连接失败,报错核心为java.net.ConnectException: Connection refused,非RabbitMQ相关功能正常运行。错误日志及配置如下:

错误日志

Attempting to connect to: [localhost:5672]
2022-09-22 17:51:12.872  WARN 80292 --- [ 127.0.0.1:5672] c.r.c.impl.ForgivingExceptionHandler     : An unexpected connection driver error occured (Exception message: Socket closed)
2022-09-22 17:51:12.880  WARN 80292 --- [)-192.168.87.19] o.s.b.a.amqp.RabbitHealthIndicator       : Rabbit health check failed

org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused (Connection refused)
    at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:61) ~[spring-rabbit-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:510) ~[spring-rabbit-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:751) ~[spring-rabbit-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.createConnection(ConnectionFactoryUtils.java:214) ~[spring-rabbit-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:2095) ~[spring-rabbit-2.2.5.RELEASE.jar:2.2.5.RELEASE]
    at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2068) ~[spring-rabbit-2.2.5.RELEASE.jar:2.2.5.RELEASE]

当前配置(application.properties)

#RABBITMQ
spring.rabbitmq.addresses=amqp://rabbitmq:rabbitmq@localhost:5672

可能原因

  • RabbitMQ服务未启动:本地localhost:5672端口无RabbitMQ服务监听,导致连接请求被拒绝。
  • 端口被占用:5672端口被其他进程占用,RabbitMQ无法正常监听该端口。
  • 账号密码错误:配置中的用户名/密码与RabbitMQ实际账号不匹配(虽报错为连接拒绝,但需排除此可能)。
  • 防火墙限制:本地防火墙拦截了应用对5672端口的访问请求。

解决方法

  1. 检查RabbitMQ服务状态

    • 执行rabbitmqctl status(Windows需进入RabbitMQ安装目录的sbin文件夹运行),确认服务是否正常运行。
    • 若服务未启动,启动RabbitMQ:Windows运行rabbitmq-server start,Linux运行systemctl start rabbitmq-server。
  2. 排查端口占用

    • Windows:执行netstat -ano | findstr :5672,查看端口占用进程ID,通过任务管理器终止该进程。
    • Linux:执行lsof -i :5672,找到占用进程后执行kill -9 <进程ID>终止。
    • 若无法终止占用进程,可修改RabbitMQ监听端口:编辑rabbitmq.conf,设置listeners.tcp.default=5673(或其他未占用端口),同时更新应用配置中的端口号。
  3. 验证配置正确性

    • 确认RabbitMQ账号密码是否有效:默认安装的RabbitMQ账号密码为guest/guest,若自定义过账号,需同步修改应用配置。
    • 建议拆分配置项以提高可读性,避免地址格式错误:
      spring.rabbitmq.host=localhost
      spring.rabbitmq.port=5672
      spring.rabbitmq.username=rabbitmq
      spring.rabbitmq.password=rabbitmq
      
  4. 检查防火墙设置

    • 临时关闭本地防火墙测试是否能连接,若恢复正常,需在防火墙中添加允许应用访问5672端口的规则。

内容的提问来源于stack exchange,提问作者Zhazgul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:25:38