Каково поведение Кафки, когда коммит сделан без чтения сообщения? - PullRequest
0 голосов
/ 05 марта 2020

У меня есть код, который выглядит следующим образом.

def message_reader(consumer):
    consumed_message = consumer.consume_batch()
    if consumed_message:
        #do something

def run_reader():
    process_consumer = get_consumer() #gets a SimpleConsumer()
    message_reader(process_consumer)
    process_consumer.commit()
    process_consumer.close()

Итак, мой вопрос: предположим, что в topi c нет сообщений и сообщения не используются - увеличивает ли commit () смещение ?

А также проверяет ли производитель последнее смещение перед выдачей сообщения?

1 Ответ

0 голосов
/ 05 марта 2020

Не эксперт по клиенту python, но клиент java просто повторно зафиксировал бы ту же позицию, если он фактически ничего не использовал между вызовами фиксации.

Я уверен, однако то, что все клиенты делают одно и то же (фиксируют одну и ту же позицию), поскольку в противном случае вы пропустите записи. Есть также целые системы мониторинга Kafka, которые были написаны с учетом такого поведения - например, burrow .

...