Невозможно использовать сообщения, используя python-kafka - PullRequest
1 голос
/ 06 мая 2019

Я пытался повторить шаги, описанные в блоге . При попытке получить код Python Kafka Consumer и Kafka Producer я могу запустить код в интерактивном терминале Python, и консоль потребителя выдаст вывод, но если я передам их в файл Python (*.py), это ничего не потребляет.

Потребитель

from kafka import KafkaConsumer
consumer = KafkaConsumer('sample')
for message in consumer:
    print (message)

Производитель

from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers='localhost:9092')
producer.send('sample', b'Hello, World!')
producer.send('sample', key=b'message-two', value=b'This is Kafka-Python')

Как я могу заставить его работать в файле Python?

1 Ответ

2 голосов
/ 06 мая 2019

Я только что добавил в начало кода производителя.flush (), и он начал работать.

Поскольку клиенты Kafka отправляют сообщения партиями, а не сразу, чтобы уменьшить нагрузку на брокеров,

Первоначально вы не отправили достаточное количество данных для того, чтобы сброс произошел сам по себе, поэтому ваши данные просто находились в памяти, пока ваше приложение завершалось.

См. batch.size свойство производителя

...