Python连接RabbitMQ报错ConnectionResetError(10054)求解决
解决RabbitMQ与Python连接时的ConnectionResetError(10054)问题
常见排查与修复步骤
确认RabbitMQ服务正在运行
打开对应系统的命令行工具,检查并启动服务:- Windows:执行
net start RabbitMQ启动服务,或在系统服务列表中查看RabbitMQ服务状态 - Linux/macOS:执行
sudo systemctl status rabbitmq-server检查状态,未启动则用sudo systemctl start rabbitmq-server启动
- Windows:执行
检查连接端口是否匹配
RabbitMQ默认AMQP端口为5672,若修改过配置需手动指定端口:connection = pika.BlockingConnection( pika.ConnectionParameters(host='localhost', port=5672))可查看RabbitMQ配置文件(如
rabbitmq.conf)确认端口设置验证用户权限配置
默认guest用户仅允许localhost访问,需确保该用户拥有虚拟主机/的权限,可通过命令行设置:rabbitmqctl set_permissions -p / guest ".*" ".*" ".*"生产环境需按需配置最小权限,此命令仅用于测试
排查防火墙/安全软件拦截
Windows防火墙、第三方杀毒软件可能拦截5672端口,可暂时关闭测试连接,若恢复正常则为RabbitMQ添加防火墙允许规则,开放5672端口的入站、出站连接检查版本兼容性
pika与RabbitMQ版本不匹配可能导致连接异常,根据RabbitMQ版本安装对应兼容的pika版本:# 示例:适配RabbitMQ 3.8+的pika版本 pip install pika==1.2.0添加连接超时与心跳参数
网络不稳定或心跳设置过短可能引发连接断开,手动配置相关参数:connection = pika.BlockingConnection( pika.ConnectionParameters( host='localhost', heartbeat=600, blocked_connection_timeout=300 ) )
极简连接测试脚本
先排除业务代码干扰,用以下脚本测试基础连接:
import pika try: connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) print("连接成功!") connection.close() except Exception as e: print(f"连接失败:{e}")
若此脚本报错,重点排查服务状态、端口、防火墙问题;若连接成功,再检查消费代码与生产者队列声明参数是否一致
内容的提问来源于stack exchange,提问作者Shivam Kumar
相关产品推荐
相关产品推荐

