Встречается на 2% собеседований по Java

Какие знаешь гарантии по чтению со стороны Consumer в Kafka

В Kafka есть несколько гарантий для Consumer:

  1. Порядок сообщений в партиции - сообщения в одной партиции всегда читаются в порядке их записи.
  2. Позиция чтения (offset) - Consumer сам управляет своим offset и может его перезаписывать.
  3. At-least-once доставка - сообщение будет прочитано как минимум один раз (если Consumer закоммитит offset после обработки).

Пример настройки гарантии доставки:

java
props.put("enable.auto.commit", "false"); // Отключаем авто-коммит
try {
    while (true) {
        ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
        for (ConsumerRecord<String, String> record : records) {
            // Обрабатываем сообщение
            processRecord(record);
            // Коммитим offset вручную после обработки
            consumer.commitSync();
        }
    }
} finally {
    consumer.close();
}

Важно: нет гарантии порядка между разными партициями, и нет строгой гарантии exactly-once без дополнительных механизмов.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы