Python KafkaConsumer не подключается - PullRequest
2 голосов
/ 29 января 2020

Настройка:

У меня есть 3 docker контейнеров

1) For Kafka
2) For Zookeeper
3) For JupyterLab

Я настраиваю сетевое взаимодействие между этими контейнерами и вижу, что производитель kafka может запускать и производить данные.

KafkaProducer.ipynb

KAFKA_BROKER = ['172.20.0.2:9093']
from kafka import KafkaProducer
from kafka.errors import KafkaError

producer = KafkaProducer(bootstrap_servers=KAFKA_BROKER)

for _ in range(100):
    print("sending")
    producer.send('my-topic', key=b'foo', value=b'bar')
    print("success")

Здесь send () отправляет сообщение 100 раз.

KafkaConsumer.ipynb

KAFKA_BROKER = ['172.20.0.2:9093']
from kafka import KafkaConsumer

consumer = KafkaConsumer('my-topic',group_id='my-group',bootstrap_servers=KAFKA_BROKER)

print("Comm success")

for message in consumer:
    # message value and key are raw bytes -- decode if necessary!
    # e.g., for unicode: `message.value.decode('utf-8')`
    print ("%s:%d:%d: key=%s value=%s" % (message.topic, message.partition,
                                          message.offset, message.key,
                                          message.value))

У указанного выше потребителя код строки print("Comm success") никогда не исполняется. Основываясь на выполнении кода производителя, сеть открыта, и jupyter может общаться с брокером kafka. Но клиент не может подключиться к одному и тому же брокеру для потребления данных. Как мне начать отладку этого?

1 Ответ

0 голосов
/ 29 января 2020

По умолчанию auto.offset.reset значение равно latest, поэтому установите его на earliest с новым group.id

consumer = KafkaConsumer('my-topic',group_id='new-group',auto_offset_reset = 'earliest',bootstrap_servers=KAFKA_BROKER)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...