Sobes.tech
Junior — Middle
92

Kafka кезегінен хабарламалар өңделгеннен кейін қалай шығарылады және жойылады?

Сұралған компаниялар
СБЕРСБЕР

AI-дан жауап

sobes.tech AI

В 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();
}

Таким образом, сообщения не удаляются вручную, а смещение подтверждается, что позволяет потребителю продолжать чтение с нужного места.