Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Kafka: kafka, delivery, guarantee, replication, acks

Как обеспечивается гарантия доставки сообщений в Kafka?

Вопрос проверяет знание механизмов надёжной передачи и подтверждения сообщений в распределённой системе Kafka.

Короткий ответ

Гарантия доставки достигается за счёт параметров acks у продюсера (0, 1 или all), записи в журнал (log) и репликации партиций. При acks=all продюсер ждёт подтверждения от всех ISR-реплик прежде чем считать сообщение доставленным.

Длинный ответ

Параметр acks:

- acks=0 — без подтверждения (наименее надёжно).

- acks=1 — подтверждение от лидера.

- acks=all (или -1) — подтверждение от всех синхронных реплик (наиболее надёжно).

 

Репликация партиций:

- Каждая партиция имеет лидера и ISR (in-sync replicas).

- При записи лидер дублирует данные на реплики.

 

Политики поведения:

- min.insync.replicas настраивает минимальное число реплик для acks=all.

- Если реплик недостаточно, запрос отклоняется.

 

Идемпотентный продюсер и транзакции:

- Включает enable.idempotence=true для защиты от дублирующих записей.

- Транзакции позволяют группировать отправку в атомарные блоки.

 

Когда применять:

- Для критичных данных — acks=all, min.insync.replicas>=2, идемпотентность.

- Для менее критичных — можно снизить acks ради скорости.

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • Kafka

    Kafka

Ключевые слова

#kafka

#delivery

#guarantee

#replication

#acks

Подпишись на QA Engineer в телеграм