Python Kafka consumer reads all messages at startup

I use the code below to read posts from a topic. I ran into two problems. Whenever I start a consumer, does it read all the messages in the queue? How to read only unread messages?

from kafka import KafkaConsumer


consumer = KafkaConsumer('my-topic',
                         group_id='my-group',
                         bootstrap_servers=['localhost:9092'])
for message in consumer:
    consumer.commit() 
    # 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))
+4
source share
1 answer

@Kenji, consumer.commit(). , , enable_auto_commit=True KafkaConsumer. auto_commit_interval_ms, . . : http://kafka-python.readthedocs.org/en/master/apidoc/KafkaConsumer.html.

+4

Source: https://habr.com/ru/post/1623516/


All Articles