[Python] Docker Kafka w/ Python consumer

Discussão em 'Python' iniciado por Stack, Outubro 23, 2024.

  1. Stack

    Stack Membro Participativo

    I am using dockerized Kafka and written one Kafka consumer program. It works perfectly when I run Kafka in docker and application at my local machine. But when I configured the local application in docker I am facing issues. The issue may be due to a topic not created until time application started.

    docker-compose.yml

    version: '3'
    services:
    zookeeper:
    image: wurstmeister/zookeeper
    ports:
    - "2181:2181"
    kafka:
    image: wurstmeister/kafka
    ports:
    - "9092:9092"
    environment:
    KAFKA_ADVERTISED_HOST_NAME: localhost
    KAFKA_CREATE_TOPICS: "test:1:1"
    KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    parse-engine:
    build: .
    depends_on:
    - "kafka"
    command: python parse-engine.py
    ports:
    - "5000:5000"


    parse-engine.py

    from kafka import KafkaConsumer
    import json

    try:
    print('Welcome to parse engine')
    consumer = KafkaConsumer('test', bootstrap_servers='localhost:9092')
    for message in consumer:
    print(message)
    except Exception as e:
    print(e)
    # Logs the error appropriately.
    pass


    Error log

    kafka_1 | [2018-09-21 06:27:17,400] INFO [SocketServer brokerId=1001] Started processors for 1 acceptors (kafka.network.SocketServer)
    kafka_1 | [2018-09-21 06:27:17,404] INFO Kafka version : 2.0.0 (org.apache.kafka.common.utils.AppInfoParser)
    kafka_1 | [2018-09-21 06:27:17,404] INFO Kafka commitId : 3402a8361b734732 (org.apache.kafka.common.utils.AppInfoParser)
    kafka_1 | [2018-09-21 06:27:17,431] INFO [KafkaServer id=1001] started (kafka.server.KafkaServer)
    **parse-engine_1 | Welcome to parse engine
    parse-engine_1 | NoBrokersAvailable
    parseengine_parse-engine_1 exited with code 0**
    kafka_1 | creating topics: test:1:1


    As I already added depends_on property in docker-compose but before starting topic application connecting so error occurred.

    I read that I can possible to add the script in the docker-compose file but I am looking for some easy way.

    Thanks for help

    Continue reading...

Compartilhe esta Página