14 лучших вопросов и ответов на интервью с Кафкой (2025 г.)
Вот вопросы и ответы на собеседовании Kafka для новичков, а также для опытных кандидатов, желающих получить работу своей мечты.
1) Упомяните, что такое Apache Kafka?
Apache Kafka — это система обмена сообщениями для публикации и подписки, разработанная Apache и написанная на Scala. Это распределенная, секционированная и реплицируемая служба журналов.
Бесплатная загрузка PDF-файла: Вопросы и ответы для интервью с Кафкой
2) Назовите традиционный метод передачи сообщений?
Традиционный метод передачи сообщений включает в себя два метода
- В очереди: В очереди пул потребителей может читать сообщение с сервера, и каждое сообщение отправляется одному из них.
- Публикация-подписка: В этой модели сообщения рассылаются всем потребителям.
Кафка обслуживает единую потребительскую абстракцию, которая обобщает оба вышеперечисленных понятия — группу потребителей.
3) Укажите, в чем преимущества Apache Kafka по сравнению с традиционным методом?
Apache Kafka имеет следующие преимущества по сравнению с традиционной техникой обмена сообщениями.
- Быстро: Один брокер Kafka может обслуживать тысячи клиентов, обрабатывая мегабайты операций чтения и записи в секунду.
- Масштабируемость: Данные секционируются и оптимизируются по кластеру компьютеров, что позволяет хранить большие объемы данных.
- Прочный: Сообщения являются постоянными и реплицируются внутри кластера, чтобы предотвратить потерю данных.
- Распространяется по дизайну: Это обеспечивает гарантии отказоустойчивости и долговечности.
4) Упомяните, что означает слово «брокер» в Кафке?
В кластере Kafka термин брокера используется для обозначения сервера.
5) Укажите, какой максимальный размер сообщения может получить сервер Kafka?
Максимальный размер сообщения, которое может получить сервер Kafka, составляет 1000000 байт.
6) Объясните, что такое Zookeeper в Кафке? Можем ли мы использовать Kafka без Zookeeper?
Zookeeper — это высокопроизводительная служба координации с открытым исходным кодом, используемая для распределенных приложений, адаптированных Kafka. Нет, невозможно обойти Zookeeper и подключиться напрямую к брокеру Kafka. Когда Zookeeper не работает, он не может обслуживать запросы клиентов.
- Zookeeper в основном используется для связи между различными узлами в кластере.
- В Kafka он используется для фиксации смещения, поэтому в случае сбоя узла в любом случае его можно получить из ранее зафиксированного смещения.
- Помимо этого, он также выполняет другие действия, такие как обнаружение лидеров, распределенная синхронизация, управление конфигурацией, определяет, когда новый узел покидает или присоединяется, кластер, состояние узла в реальном времени и т. д.
7) Объясните, как сообщение воспринимается потребителем в Kafka?
Передача сообщений в Kafka осуществляется с помощью sendfile. API. Он позволяет передавать байты из сокета на диск посредством копий, сохраняющих пространство ядра, и осуществлять обратный вызов ядра между пользователем ядра.
8) Объясните, как можно улучшить пропускную способность удаленного потребителя?
Если потребитель находится в центре обработки данных, отличном от брокера, вам может потребоваться настроить размер буфера сокета, чтобы амортизировать длительную задержку в сети.
9) Объясните, как можно получить ровно один раз сообщение от Кафки во время создания данных?
Во время обработки данных, чтобы получить ровно один раз сообщение от Кафки, вам необходимо выполнить две вещи. избежание дубликатов во время потребления данных и избежание дублирования при производстве данных. Вот два способа получить ровно одну семантику при создании данных:
- Доступен один модуль записи для каждого раздела. Каждый раз, когда вы получаете сетевую ошибку, проверяется последнее сообщение в этом разделе, чтобы увидеть, была ли ваша последняя запись успешной.
- В сообщении укажите первичный ключ (UUID или что-то в этом роде) и выполните дедупликацию на потребителе.
10) Объясните, как можно уменьшить отток в ISR? Когда брокер покидает ISR?
ISR — это набор реплик сообщений, которые полностью синхронизированы с лидерами, другими словами, ISR содержит все зафиксированные сообщения. ISR всегда должен включать все реплики, пока не произойдет реальный сбой. Реплика будет исключена из ISR, если она отклонится от лидера.
11) Зачем нужна репликация в Кафке?
Репликация сообщения в Kafka гарантирует, что любое опубликованное сообщение не потеряется и может быть использовано в случае машинной ошибки, ошибки программы или более распространенных обновлений программного обеспечения.
12) Что означает, если реплика долгое время находится вне ISR?
Если реплика остается вне ISR в течение длительного времени, это указывает на то, что ведомый не может получать данные так же быстро, как данные, накопленные у лидера.
13) Упомяните, что произойдет, если предпочитаемой реплики нет в ISR?
Если предпочтительная реплика отсутствует в ISR, контроллер не сможет переместиться. руководство к предпочтительной реплике.
14) Можно ли получить смещение сообщения после создания?
Вы не можете сделать это из класса, который ведет себя как производитель, как в большинстве систем очередей, его роль — запускать и забывать сообщения. Брокер выполнит остальную работу, например соответствующую обработку метаданных с идентификаторами, смещениями и т. д. Как потребитель сообщения, вы можете получить смещение от брокера Kafka. Если вы посмотрите в Простойпотребитель класс, вы заметите, что он приносит МультиFetchResponse объекты, включающие смещения в виде списка. В дополнение к этому, когда вы повторяете сообщение Кафки, у вас будет СообщениеИСмещение объекты, которые включают в себя как смещение, так и отправленное сообщение.
Эти вопросы для собеседования также помогут вам в устной речи.