Каких вопросов о Kafka ожидать на собеседовании?
Автор: Aaron Cao · Обновлено

Ожидайте вопросы четырёх уровней: основные понятия (темы, разделы, смещения, группы потребителей), гарантии доставки (как минимум однократная, строго однократная, идемпотентные производители), эксплуатация (репликация, синхронизированные реплики, хранение, перебалансировка) и задачи на проектирование, где нужно определить число разделов, выбрать ключи и обработать сбои. Интервьюеры выясняют, почему вы выбрали каждый ответ.
Какие основные понятия Kafka проверяют в первую очередь?
Вы уже знаете, что Kafka — это распределённый журнал, и опасаетесь, что интервьюер углубится на один уровень дальше вашего повседневного опыта. Именно к этому и ведут такие вопросы, поэтому в этом разделе термины разобраны в обычной для собеседований последовательности, а для каждого указан возможный дополнительный вопрос.
- Темы и разделы. Тема делится на разделы, каждый из которых представляет собой упорядоченный журнал только для добавления записей. Дополнительный вопрос: почему Kafka масштабирует запись добавлением разделов, а не ускорением единого журнала?
- Смещения. Позиция потребителя в разделе. Дополнительный вопрос: где хранятся зафиксированные смещения и что произойдёт, если потребитель аварийно завершит работу до фиксации?
- Группы потребителей. Потребители в группе делят между собой разделы темы, причём в каждый момент времени один раздел назначается не более чем одному потребителю группы. Дополнительный вопрос: что произойдёт с пропускной способностью, если потребителей в группе больше, чем разделов?
- Брокеры и контроллер. Брокеры хранят разделы, а контроллер управляет выбором лидера и метаданными. Дополнительный вопрос: что изменилось после переноса метаданных Kafka из ZooKeeper в KRaft?
- Производители и ключи. Сообщение с ключом попадает в раздел, выбранный хешированием ключа; сообщения без ключей распределяются между разделами. Дополнительный вопрос: какой из этих двух вариантов сохраняет порядок событий одного клиента?
Объясняйте механизм, а не ограничивайтесь лозунгом. Сказать, что разделы обеспечивают параллелизм, — лишь необходимый минимум; объяснить, что порядок существует только внутри раздела и потому ключ определяет область упорядочивания, — это ответ, который помогает пройти в следующий этап.
Как проходят вопросы о гарантиях доставки и репликации?
На этом уровне большинство кандидатов теряет баллы, потому что термины просты, а компромиссы — нет. Будьте готовы к тому, что интервьюер назовёт гарантию и попросит обеспечить её с помощью настроек.
- Не более чем однократная и как минимум однократная доставка. Если зафиксировать смещение до обработки, сообщение можно потерять; если сначала обработать его, а затем зафиксировать смещение, оно может быть обработано дважды. Объясните, какие сбои допускает каждый порядок и какой вариант предпочитает ваша система.
- Идемпотентные производители и строго однократная доставка. Идемпотентный производитель устраняет дубликаты повторных отправок внутри раздела; транзакции распространяют это свойство на несколько разделов и смещения потребителей в цикле «получить — преобразовать — отправить». Будьте готовы назвать то, что строго однократная доставка не охватывает: запись в нижестоящую базу данных вне транзакции всё ещё остаётся вашей задачей.
- acks, коэффициент репликации и синхронизированные реплики.
acks=allожидает подтверждения от набора синхронизированных реплик;min.insync.replicasзадаёт минимальный размер этого набора, ниже которого новые записи отклоняются. Интервьюеры часто спрашивают, чем приходится платить за надёжность: задержкой и доступностью при потере брокера. - Хранение и уплотнение. Хранение по времени или размеру удаляет старые сегменты; уплотнение журнала сохраняет последнюю запись для каждого ключа. Дополнительный вопрос: какой вариант подходит для журнала изменений хранилища «ключ — значение» и почему?
- Перебалансировка. Когда потребитель присоединяется к группе или покидает её, разделы переназначаются. Дополнительный вопрос: как долгая перебалансировка влияет на сервис, чувствительный к задержкам, и как совместная перебалансировка и статическое членство уменьшают проблему?
Полезная привычка: для каждой названной настройки объясняйте, какой сбой она предотвращает и какой ценой. Такая структура позволяет одним ответом охватить и основной, и дополнительный вопрос.
Как выглядят задачи на проектирование и разбор сценариев?
На собеседованиях для старших специалистов определения заменяют сценарием и наблюдают за ходом ваших рассуждений. Типичный пример: backend-инженера, претендующего на роль в платформенной команде платёжной компании, просят спроектировать конвейер событий, в котором все транзакции одного счёта должны обрабатываться по порядку, пропускная способность должна расти вместе с трафиком, а отказ брокера не должен приводить к потере данных. Сильный ответ предлагает использовать идентификатор счёта как ключ сообщения, чтобы события одного счёта попадали в общий раздел, рассчитать число разделов под ожидаемый пик с запасом для роста, настроить репликацию и acks=all для надёжности, а также объяснить фиксацию смещений потребителями таким образом, чтобы после сбоя сообщения обрабатывались повторно, а не пропускались.
Другие частые сценарии: отстающий потребитель, обнаружение задержки и наверстывание; тема с неудачно выбранным числом разделов и причина, по которой перераспределение нарушает порядок ключей; проблемное сообщение, вызывающее сбой потребителя, и шаблон очереди недоставленных сообщений для его изоляции; изменение схем у производителей и потребителей и польза реестра схем. Интервьюер не ищет единственно верную архитектуру. Он хочет, чтобы вы назвали ограничение, выбрали механизм и вслух сформулировали компромисс.
Перед собеседованием проговаривайте ответы вслух, а не только читайте их. Для репетиции сценарных вопросов с ИИ-интервьюером, который задаёт уточняющие вопросы, предназначен режим практики на странице пробного собеседования, а более широкий набор вопросов по ролям и темам находится в разделе вопросов по ролям и темам.
Может ли ИИ-помощник помочь с вопросами о Kafka?
На разговорном собеседовании — да, в разумных и честных пределах. Нативное приложение SubcueAI для macOS и Windows захватывает звук интервьюера и ваш микрофон, а затем показывает краткие подсказки с ответами в локальном оверлее. Поэтому, когда интервьюер спрашивает, от чего защищает min.insync.replicas, механизм уже отображается на вашем экране, пока вы объясняете его своими словами. Расширение браузера делает то же самое для звонков во вкладке браузера, захватывая звук только из вкладки встречи. Ни один из вариантов не добавляет бота в звонок и ничего не внедряет на страницу встречи; руководство по настройке находится на странице инструкции.
Ограничения важнее рекламных обещаний. Контролируемый тест по программированию, запись экрана или корпоративный ноутбук выходят за рамки применения, а код во время практического задания под наблюдением вы должны писать самостоятельно. Лучше всего помощник справляется с приведёнными выше вопросами о терминах и компромиссах, а хуже всего — с заданиями, ответы на которые вводятся на платформе оценки. Прежде чем полагаться на него, загрузите своё резюме, чтобы подсказки отражали вашу реальную работу с Kafka; этот профиль хранится в конструкторе резюме.
Частые вопросы
Почему Kafka гарантирует порядок только внутри раздела?
Чем в Kafka отличаются как минимум однократная и строго однократная доставка?
Сколько потребителей должно быть в группе потребителей?
Что происходит при отказе брокера Kafka?
Может ли SubcueAI помочь во время тестового задания по Kafka?
Похожие вопросы
- Каких вопросов о Databricks ожидать на собеседовании?
- Каких вопросов по .NET ждать на собеседовании?
- Каких вопросов ожидать на собеседовании инженера по качеству?
- Каких вопросов ожидать на квант-интервью?
- Каких вопросов по Snowflake ожидать на собеседовании?
- Каких вопросов ожидать на собеседовании учителя?