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

Java集成RabbitMQ频繁遇Connection reset连接驱动错误求助

RabbitMQ连接重置(Connection reset)问题排查与解决

问题概述

集成RabbitMQ的Java项目运行时频繁抛出以下错误:

c.r.c.impl.ForgivingExceptionHandler: An unexpected connection driver error occurred (Exception message: Connection reset)

环境配置:

  • Java 11
  • RabbitMQ 3.11.16
  • Erlang 26.0

已确认端口5672处于监听状态,防火墙未拦截端口或应用,但连接localhost:5672时仍频繁出现连接重置。

日志与截图信息

RabbitMQ服务日志

accepting AMQP connection <0.28225.0> (127.0.0.1:61937 -> 127.0.0.1:5672)
2023-05-25 13:55:51.840000+05:30 [info] <0.28225.0> connection <0.28225.0> (127.0.0.1:61937 -> 127.0.0.1:5672) has a client-provided name: connectionFactory#64ae105d:3
2023-05-25 13:55:51.841000+05:30 [info] <0.28225.0> connection <0.28225.0> (127.0.0.1:61937 -> 127.0.0.1:5672 - connectionFactory#64ae105d:3): user 'guest' authenticated and granted access to vhost 'blr'
2023-05-25 13:55:51.842000+05:30 [error] <0.28225.0> crasher:
2023-05-25 13:55:51.842000+05:30 [error] <0.28225.0> initial call: rabbit_reader:init/3
2023-05-25 13:55:51.842000+05:30 [error] <0.28225.0> pid: <0.28225.0>
2023-05-25 13:55:51.842000+05:30 [error] <0.28225.0> registered_name: []
2023-05-25 13:55:51.842000+05:30 [error] <0.28225.0> exception exit: {unexpected_message,{'EXIT',#Port<0.7023>,einval}}
2023-05-25 13:55:51.842000+05:30 [error] <0.28225.0> in function rabbit_reader:handle_other/2 (rabbit_reader.erl, line 644)
2023-05-25 13:55:51.842000+05:30 [error] <0.28225.0> in call from rabbit_reader:mainloop/4 (rabbit_reader.erl, line 535)
2023-05-25 13:55:51.842000+05:30 [error] <0.28225.0> in call from rabbit_reader:run/1 (rabbit_reader.erl, line 457)
2023-05-25 13:55:51.842000+05:30 [error] <0.28225.0> in call from rabbit_reader:start_connection/5 (rabbit_reader.erl, line 356)
2023-05-25 13:55:51.842000+05:30 [error] <0.28225.0> ancestors: [<0.28223.0>,<0.673.0>,<0.672.0>,<0.671.0>,<0.669.0>,
2023-05-25 13:55:51.842000+05:30 [error] <0.28225.0> <0.668.0>,rabbit_sup,<0.233.0>]
2023-05-25 13:55:51.842000+05:30 [error] <0.28225.0> message_queue_len: 0
2023-05-25 13:55:51.842000+05:30 [error] <0.28225.0> messages: []

相关截图

  • RabbitMQ状态截图:RabbitMQ状态
  • Eclipse控制台输出截图:Eclipse控制台输出

解决步骤

1. 修复Erlang与RabbitMQ版本兼容性问题

RabbitMQ 3.11.16不兼容Erlang 26.0,官方明确标注3.11.x版本仅支持Erlang 24.3.4.8至25.x版本。Erlang 26的底层网络模块变更会导致RabbitMQ的连接处理进程抛出einval错误,直接引发连接重置。

操作步骤:

  • 卸载当前Erlang 26.0
  • 下载并安装Erlang 25.3.x版本(推荐稳定版)
  • 重启RabbitMQ服务

2. 确认客户端连接配置正确性

  • 检查虚拟主机blr是否存在,且guest用户拥有该虚拟主机的读写权限
  • 为连接工厂设置合理的超时参数,避免因超时导致连接被主动关闭,示例代码(Spring Boot环境):
@Bean
public ConnectionFactory connectionFactory() {
    CachingConnectionFactory factory = new CachingConnectionFactory("localhost", 5672);
    factory.setUsername("guest");
    factory.setPassword("guest");
    factory.setVirtualHost("blr");
    factory.setConnectionTimeout(30000); // 设置30秒连接超时
    return factory;
}

3. 验证RabbitMQ服务状态

执行以下命令确认服务运行正常:

rabbitmqctl status

确保输出中无异常报错,且5672端口监听正常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:57:34