Вопрос проверяет понимание механизма чтения сообщений из Kafka и принципов работы консьюмеров.
Консьюмер — это клиент Kafka, который читает сообщения из топиков. Он обрабатывает сообщения последовательно внутри партиции. Консьюмер отслеживает позицию чтения с помощью offset. Сообщения не удаляются после чтения. Это позволяет разным консьюмерам читать одни и те же данные независимо.
Консьюмер отвечает за получение и обработку данных, которые уже сохранены в Kafka.
Consumer — это Kafka-клиент, который читает сообщения из топиков и обрабатывает их.
Консьюмер:
подписывается на один или несколько топиков;
периодически опрашивает Kafka;
получает новые сообщения.
Пример чтения:
for message in consumer:
process(message.value)
Каждое сообщение имеет offset — порядковый номер:
консьюмер хранит последний обработанный offset;
при перезапуске продолжает с нужного места.
Kafka гарантирует:
порядок сообщений внутри одной партиции;
отсутствие глобального порядка между партициями.
Это важно учитывать при проектировании логики.
Сообщения:
не удаляются после чтения;
могут быть прочитаны повторно;
доступны разным consumer group.
Консьюмеры позволяют гибко и независимо обрабатывать данные из Kafka, управляя порядком и прогрессом чтения через offset.