consumer:无法连接到amqp:// user:**@ localhost:5672 //:[Errno 111]连接被拒绝

Kus*_*tel 6 rabbitmq docker airflow

我正在尝试使用docker和rabbitMQ来建立我的气流.我正在使用rabbitmq:3管理图像.我可以访问rabbitMQ UI和API.

在气流中,我正在建造气流网络服务器,气流调度器,气流工作者和气流花.Airflow.cfg文件用于配置气流.

我在哪里使用broker_url = amqp://user:password@127.0.0.1:5672/celery_result_backend = amqp://user:password@127.0.0.1:5672/

我的docker撰写文件如下

version: '3'
services:
  rabbit1:
    image: "rabbitmq:3-management"
    hostname: "rabbit1"
    environment:
      RABBITMQ_ERLANG_COOKIE: "SWQOKODSQALRPCLNMEQG"
      RABBITMQ_DEFAULT_USER: "user"
      RABBITMQ_DEFAULT_PASS: "password"
      RABBITMQ_DEFAULT_VHOST: "/"
    ports:
      - "5672:5672"
      - "15672:15672"

    labels:
      NAME: "rabbitmq1"

  webserver:
    build: "airflow/"
    hostname: "webserver"
    restart: always
    environment:
      - EXECUTOR=Celery
    ports:
      - "8080:8080"
    depends_on:
      - rabbit1
    command:  webserver

  scheduler:
    build: "airflow/"
    hostname: "scheduler"
    restart: always
    environment:
      - EXECUTOR=Celery
    depends_on:
      - webserver
      - flower
      - worker
    command: scheduler

  worker:
    build: "airflow/"
    hostname: "worker"
    restart: always
    depends_on:
      - webserver
    environment:
      - EXECUTOR=Celery
    command: worker

  flower:
    build: "airflow/"
    hostname: "flower"
    restart: always
    environment:
      - EXECUTOR=Celery
    ports:
      - "5555:5555"
    depends_on:
      - rabbit1
      - webserver
      - worker
    command: flower
Run Code Online (Sandbox Code Playgroud)

我能够使用docker compose构建图像.但是,我无法将我的气流调度程序连接到rabbitMQ.我收到以下错误:

consumer:无法连接到amqp:// user:**@ localhost:5672 //:[Errno 111]连接被拒绝.

我尝试过使用127.0.0.1和localhost.

我做错了什么?

小智 9

我通过使用命令将rabbitMQ服务器安装到我的系统中解决了这个问题sudo apt install rabbitmq-server


Ano*_*oop 6

airflow容器中,您应该能够连接到服务rabbit1.因此,所有你需要做的是改变amqp://user:**@localhost:5672//:amqp://user:**@rabbit1:5672//:它应该工作.

Docker compose创建一个默认网络,并附加未明确定义网络的服务.

您不需要在rabbit1上公开5672和15672端口,除非您希望能够从应用程序外部访问它.

此外,通常不建议在docker-compose中构建图像.