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

Celery对接ActiveMQ报错求助:客户端使用不支持的AMQP协议

Celery对接ActiveMQ报AMQP不兼容错误的解决方案

错误原因分析

你遇到的Connection from client using unsupported AMQP attempted错误,核心是AMQP协议版本不匹配或ActiveMQ的AMQP端口/配置未正确设置:

  • Celery默认使用AMQP 0.9.1协议,若ActiveMQ未正确启用对应版本的AMQP插件、或端口未开放,就会拒绝连接。
  • 你的docker-compose配置存在两处关键问题:AMQP端口未映射、Broker URL配置位置错误(给ActiveMQ服务设置了Celery的环境变量)。

修正步骤

1. 调整docker-compose配置

把AMQP端口映射到宿主机,并将CELERY_BROKER_URL移到Celery服务的环境变量中:

version: '3'
services:
  activemq:
    image: webcenter/activemq:latest
    ports:
      - "8161:8161"       # 管理控制台端口
      - "61616:61616"     # OpenWire协议端口
      - "5672:5672"       # AMQP协议端口,必须添加映射
  celery:
    build: .
    command: celery -A tasks worker --loglevel=info
    volumes:
      - .:/app
    depends_on:
      - activemq
    environment:
      # 正确设置Celery的Broker地址
      CELERY_BROKER_URL: 'amqp://guest:guest@activemq:5672//'

2. 确认ActiveMQ的AMQP插件已启用

通过ActiveMQ管理控制台(http://localhost:8161,账号密码均为guest):

  • 进入「Manage ActiveMQ Broker」→「Plugins」
  • 确认列表中存在AMQPProtocolPlugin(webcenter镜像默认已启用,无需额外操作)。

3. 指定AMQP协议版本(可选)

如果依然报错,可在Broker URL中强制指定AMQP 0.9.1版本,确保和Celery兼容:

CELERY_BROKER_URL: 'amqp://guest:guest@activemq:5672//?transport_options={"amqp_version": "0.9.1"}'

4. 检查依赖版本

确保Python环境中kombu版本≥4.0.0,该版本对AMQP 0.9.1的兼容性更好,可通过以下命令升级:

pip install --upgrade kombu

关于集成可行性

ActiveMQ完全支持AMQP 0.9.1协议,和RabbitMQ的协议兼容,很多开发者已经成功实现Celery与ActiveMQ的集成,只要配置正确就能正常运行任务编排。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 05:07:23