Встречается на собеседованиях • сегодня

Что будет в Kafka если сообщение не доставлено

Если сообщение в Kafka не доставлено (например, из-за ошибки брокера или сети), поведение зависит от настроек продюсера:

  1. acks=0 - продюсер не ждет подтверждения, возможна потеря данных
  2. acks=1 (по умолчанию) - ждет подтверждения от лидера, но не от реплик. При падении лидера возможно дублирование или потеря.
  3. acks=all - ждет подтверждения от всех реплик. Максимальная надежность.

Пример обработки ошибок:

java
try {
    producer.send(new ProducerRecord<>("topic", "key", "value"));
} catch (Exception e) {
    // Обработка ошибки (логирование, повторная отправка и т.д.)
    logger.error("Send failed", e);
}

Также можно использовать callback для асинхронной обработки:

java
producer.send(record, (metadata, exception) -> {
    if (exception != null) {
        // Обработка ошибки
    }
});

Сообщения могут быть повторно отправлены при включенном retries (по умолчанию Integer.MAX_VALUE).

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

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

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

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