Junior — Middle
105
Kako se vrši izvlačenje i brisanje poruka iz Kafka reda nakon obrade?
Компаније где су питане
Одговор од АИ
sobes.tech АИ
В Kafka сообщения не удаляются сразу после обработки, а смещаются (offset) потребителя. Извлечение сообщений происходит через потребитель (consumer), который читает сообщения из топика.
Удаление сообщений из очереди происходит автоматически на стороне брокера по политике хранения (retention), а не вручную потребителем.
После обработки сообщений потребитель подтверждает (commit) смещение, чтобы Kafka знала, что эти сообщения обработаны и можно считать их прочитанными.
Пример на Java с использованием KafkaConsumer:
consumer.subscribe(Collections.singletonList("my-topic"));
while (true) {
ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
for (ConsumerRecord<String, String> record : records) {
// обработка сообщения
System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
}
// подтверждение обработки
consumer.commitSync();
}
Таким образом, сообщения не удаляются вручную, а смещение подтверждается, что позволяет потребителю продолжать чтение с нужного места.