По умолчанию kafka python начинается с последнего смещения, ie будет читать только новые сообщения. Один из подходов заключается в чтении с самого начала, или альтернативный подход заключается в продолжении опроса topi c в бесконечном l oop, как показано в следующем коде:
while True:
try:
records = consumer.poll(60 * 1000) # timeout in millis , here set to 1 min
record_list = []
for tp, consumer_records in records.items():
for consumer_record in consumer_records:
record_list.append(consumer_record.value)
print(record_list) # record_list will be list of dictionaries
Edit
Для чтения с самого начала нам нужно добавить auto_offset_reset=earliest
ранее при создании объекта-потребителя
consumer = KafkaConsumer(
"my-topic",
bootstrap_servers="localhost:9092"),
value_deserializer=lambda v: json.dumps(v).encode("utf-8"),
auto_offset_reset='earliest')
Дайте мне знать, если это поможет !!