升级RabbitMQ至3.11.12后无法建立AMQP连接求助
RabbitMQ 3.11.12-1升级后AMQP连接失败解决思路
昨晚Plesk服务将RabbitMQ服务器从3.11.11-1版本自动升级至3.11.12-1版本后,出现远程AMQP连接问题,服务器拒绝所有连接尝试,错误日志如下:
2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> closing AMQP connection <0.763.0> (192.168.245.66:40692 -> 192.168.245.66:5672): 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> {handshake_error,opening,0, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> {error,badarg,'connection.open', 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> [{ets,lookup_element, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> [ranch_server,{listener_sup,{acceptor,{0,0,0,0,0,0,0,0},5672}},2], 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> [{error_info,#{cause => badkey,module => erl_stdlib_errors}}]}, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> {ranch_server,get_listener_sup,1, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> [{file,"src/ranch_server.erl"},{line,122}]}, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> {ranch,info,1,[{file,"src/ranch.erl"},{line,434}]}, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> {rabbit_reader,is_over_node_connection_limit,1, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> [{file,"rabbit_reader.erl"},{line,1329}]}, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> {rabbit_reader,handle_method0,2, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> [{file,"rabbit_reader.erl"},{line,1225}]}, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> {rabbit_reader,handle_method0,3, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> [{file,"rabbit_reader.erl"},{line,1128}]}, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> {rabbit_reader,handle_input,3, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> [{file,"rabbit_reader.erl"},{line,1032}]}, 2023-03-31 06:26:04.674063+02:00 [error] <0.763.0> {rabbit_reader,recvloop,4,[{file,"rabbit_reader.erl"},{line,472}]}]}}
解决步骤
- 重启RabbitMQ服务:优先通过全重启消除升级后的状态残留。使用systemd命令:
或者在Plesk面板操作:进入「工具与设置」→「服务管理」,找到RabbitMQ服务执行重启。systemctl stop rabbitmq-server systemctl start rabbitmq-server - 检查监听器状态:通过CLI工具确认端口监听情况,执行
rabbitmq-diagnostics listeners,输出中需包含amqp协议绑定到0.0.0.0:5672或目标IP端口。 - 回滚至稳定版本:若重启无效,直接降级到3.11.11-1版本:
- Debian/Ubuntu系统:
apt install rabbitmq-server=3.11.11-1 apt-mark hold rabbitmq-server - CentOS/RHEL系统:
yum downgrade rabbitmq-server-3.11.11-1 yum versionlock rabbitmq-server
- Debian/Ubuntu系统:
- 验证连接限制配置:检查连接数上限是否合理,执行
rabbitmqctl environment | grep connection.max,或查看/etc/rabbitmq/rabbitmq.conf中的connection.max参数,确保值未被错误设置为0或极小值。 - 排查Ranch库状态:错误日志指向底层网络库Ranch的ETS查询失败,重启服务未解决的话,可确认升级过程中Ranch依赖是否完整,或清理Erlang临时缓存(重启服务已覆盖此操作,集群环境需确保所有节点同步重启)。
内容的提问来源于stack exchange,提问作者detlefR
相关产品推荐
相关产品推荐

