消费者:无法连接到amqp://用户:** @ localhost:5672 //:[Errno 111]连接被拒绝
问题描述:
我想用docker和rabbitMQ来建立我的气流。我正在使用rabbitmq:3管理映像。我可以访问rabbitMQ UI和API。消费者:无法连接到amqp://用户:** @ localhost:5672 //:[Errno 111]连接被拒绝
在气流中我建立气流webserver,气流调度程序,气流工作者和气流花。 Airflow.cfg文件用于配置气流。
当我使用broker_url = amqp://user:[email protected]:5672/
和celery_result_backend = amqp://user:[email protected]:5672/
我的码头工人撰写文件如下
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
我能够建立使用泊坞窗景。但是,我无法将我的气流调度程序连接到rabbitMQ。我得到以下错误:
consumer: Cannot connect to amqp://user:**@localhost:5672//: [Errno 111] Connection refused.
我试过使用127.0.0.1和localhost都。
我做错了什么?
答
从您的airflow
集装箱内,您应该能够连接到服务rabbit1
。所以你所要做的就是把amqp://user:**@localhost:5672//:
更改为amqp://user:**@rabbit1:5672//:
,它应该可以工作。
Docker撰写创建默认网络,并将未明确定义网络的服务附加到该网络。
除非您希望能够从应用程序外部访问,否则不需要公开rabbit1上的5672 & 15672端口。
此外,通常不推荐在docker-compose中构建图像。