Cannot connect to RabbitMQ from Flower/Celery

24 Views Asked by At

At this point, I spent 3 days on this and it is driving me absolutely crazy.

I changed from Redis to RabbitMQ broker, and it broke everything. I am getting the following error regardless of which configuration I try.

app-worker-1    | [2024-03-25 07:26:55,878: ERROR/MainProcess] consumer: Cannot connect to amqp://user:**@rabbitmq:5672//: [Errno -2] Name or service not known.
app-worker-1    | Trying again in 2.00 seconds... (1/100)
app-worker-1    | 
app-flower-1    | [E 240325 07:26:56 events:191] Failed to capture events: '[Errno 111] Connection refused', trying again in 2 seconds.
app-flower-1    | [E 240325 07:26:56 base_events:1771] Future exception was never retrieved
app-flower-1    |     future: <Future finished exception=OperationalError('[Errno 111] Connection refused')>
app-flower-1    |     Traceback (most recent call last):
app-flower-1    |       File "/usr/local/lib/python3.11/site-packages/kombu/connection.py", line 472, in _reraise_as_library_errors
app-flower-1    |         yield
app-flower-1    |       File "/usr/local/lib/python3.11/site-packages/kombu/connection.py", line 459, in _ensure_connection
app-flower-1    |         return retry_over_time(
app-flower-1    |                ^^^^^^^^^^^^^^^^
app-flower-1    |       File "/usr/local/lib/python3.11/site-packages/kombu/utils/functional.py", line 318, in retry_over_time
app-flower-1    |         return fun(*args, **kwargs)
app-flower-1    |                ^^^^^^^^^^^^^^^^^^^^
app-flower-1    |       File "/usr/local/lib/python3.11/site-packages/kombu/connection.py", line 941, in _connection_factory
app-flower-1    |         self._connection = self._establish_connection()
app-flower-1    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app-flower-1    |       File "/usr/local/lib/python3.11/site-packages/kombu/connection.py", line 867, in _establish_connection
app-flower-1    |         conn = self.transport.establish_connection()
app-flower-1    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app-flower-1    |       File "/usr/local/lib/python3.11/site-packages/kombu/transport/pyamqp.py", line 203, in establish_connection
app-flower-1    |         conn.connect()
app-flower-1    |       File "/usr/local/lib/python3.11/site-packages/amqp/connection.py", line 323, in connect
app-flower-1    |         self.transport.connect()
app-flower-1    |       File "/usr/local/lib/python3.11/site-packages/amqp/transport.py", line 129, in connect
app-flower-1    |         self._connect(self.host, self.port, self.connect_timeout)
app-flower-1    |       File "/usr/local/lib/python3.11/site-packages/amqp/transport.py", line 184, in _connect
app-flower-1    |         self.sock.connect(sa)
app-flower-1    |     ConnectionRefusedError: [Errno 111] Connection refused

I am running everything through docker:

version: "3.8"

services:
  worker:
    build: 
      context: . 
      dockerfile: Dockerfile
    network_mode: host
    environment:
      - C_FORCE_ROOT="true"
    ports:
      - 8001:8000
    volumes:
      - ./:/app
    command: ['celery', '-A',  'app.src.backend.worker', 'worker', '-l', 'info']
    depends_on:
      - rabbitmq
      - redis 

  flower:
    image: mher/flower:2.0
    command: ['celery', '--broker=amqp://user:password@rabbitmq:5672/', 'flower']
    environment:
      - FLOWER_PORT=5555
      - FLOWER_PERSISTENT=True
      - FLOWER_STATE_SAVE_INTERVAL=10000

    ports:
      - 5555:5555
    volumes:
      - /usr/local/flower:/etc/flower
    depends_on:
      - rabbitmq
      - redis 
      - worker
      - app
    
  app: 
    build:
      context: . 
      dockerfile: Dockerfile 
    command: ['python', 'run.py']
    volumes:
      - ./:/app
    depends_on: 
      - rabbitmq 
      - redis 

  rabbitmq:
    image: rabbitmq:3-management
    hostname: rabbitmq
    ports:
      - 5672:5672 
      - 15672:15672
    environment:
      - RABBITMQ_DEFAULT_USER=user
      - RABBITMQ_DEFAULT_PASS=password
      - RABBITMQ_DEFAULT_VHOST=/
      - CELERY_BROKER_URL=amqp://user:password@rabbitmq:5672
    depends_on:
      - redis

  redis:
    image: redis:latest
    hostname: redis
    ports:
      - 6379:6379

I tried different ports, different parameters, all the advices I found online... nothing changed in 3 days.

Versions:

kombu==5.1.0
celery==5.1.2

I can access RabbitMQ in browser.

Any help is extremely appreciated.

0

There are 0 best solutions below