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

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 启动
  • 检查连接端口是否匹配
    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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 12:07:36