Где хранится offset прочитанных сообщений Кафка?

Например, есть 4 консьюмера(потребителя), которые читаю данные из топика.

Как Кафка обеспечивает то, что ранее прочитанные сообщения из топика не будут повторно прочитаны другими потребителями или тем же потребителем снова?

Где и как хранится этот оффсет прочитанных сообщений и как он назначается потребителям в процессе работы и перезапуска кафки?


Ответы (3 шт):

Автор решения: Alexander Pavlov

В ZooKeeper. Правда, хотят они от этой зависимости избавиться.

→ Ссылка
Автор решения: Igor Maznitsa

оффсеты консьюмеров хранятся в кафке, в специальном топике с именем __consumer_offsets

→ Ссылка
Автор решения: leo_85

В посте https://stackoverflow.com/questions/41137281/offsets-stored-in-zookeeper-or-kafka говорится, что до 0.9 версии кафка хранит оффсеты в зукипере, в более старших версиях в топике __consumer_offsets. Соответствующая версия должна быть как у брокера так и у клиента.

Чтобы ранее прочитанные сообщения не были прочитаны повторно, можно посмотреть в сторону подхода exactly once на консюмере кафки или в сторону архитектурного подхода Дедубликация сообщений.

→ Ссылка