Встречается на собеседованиях • сегодня
Есть ли гарантия доставки у Kafka
Kafka обеспечивает высокую надежность доставки, но гарантии зависят от конфигурации:
-
At least once (минимум один раз) - гарантируется при
acks=allиreplication.factor>=2. Сообщение не потеряется, но возможны дубли (если producer не получил ack и отправит повторно). -
Exactly once (ровно один раз) - достигается через:
- Идемпотентность producer (
enable.idempotence=true) - Транзакции между producer и consumer (
isolation.level=read_committed)
- Идемпотентность producer (
Пример producer с гарантией exactly-once:
java
props.put("enable.idempotence", "true");
props.put("acks", "all");
props.put("transactional.id", "my-transactional-id");
Producer producer = new KafkaProducer<>(props);
producer.initTransactions();
try {
producer.beginTransaction();
producer.send(new ProducerRecord<>("topic", "key", "value"));
producer.commitTransaction();
} catch (Exception e) {
producer.abortTransaction();
}Без правильной настройки возможны потери сообщений или дубли.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы