14 найкращих запитань і відповідей на інтерв’ю Кафки (2025)

Ось питання та відповіді на співбесіді Кафки для новачків, а також для досвідчених кандидатів на роботу своєї мрії.


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 здійснюється за допомогою sendfile API. Це забезпечує передачу байтів із сокета на диск через копії ядра, що заощаджує простір, і виклик між користувачами ядра назад до ядра.


8) Поясніть, як можна підвищити пропускну здатність віддаленого споживача?

Якщо споживач знаходиться в іншому центрі обробки даних, ніж брокер, вам може знадобитися налаштувати розмір буфера сокета, щоб амортизувати тривалу затримку мережі.

Питання для інтерв'ю Apache Kafka
Питання для інтерв'ю Apache Kafka

9) Поясніть, як ви можете отримати рівно один раз повідомлення від Kafka під час створення даних?

Під час виробництва даних, щоб отримати точно один раз повідомлення від Kafka, ви повинні дотримуватися двох речей уникнення дублікатів під час використання даних та уникнення дублювання під час виробництва даних. Ось два способи отримати точно одну семантику під час виробництва даних:

  1. Використовуйте один записувач для кожного розділу, щоразу, коли ви отримуєте мережеву помилку, перевіряє останнє повідомлення в цьому розділі, щоб перевірити, чи вдався ваш останній запис
  2. У повідомленні додайте первинний ключ (UUID або щось подібне) і видаліть дублікат у споживача

10) Поясніть, як можна зменшити відтік у ISR? Коли брокер виходить з ISR?

ISR — це набір реплік повідомлень, які повністю синхронізовані з лідерами, іншими словами, ISR містить усі повідомлення, які зафіксовано. ISR завжди має включати всі репліки, доки не станеться справжня помилка. Репліка буде виключена з ISR, якщо вона відхиляється від лідера.


11) Чому в Кафці потрібна реплікація?

Реплікація повідомлень у Kafka гарантує, що будь-яке опубліковане повідомлення не буде втрачено та може бути використано у разі машинної помилки, програмної помилки або більш поширених оновлень програмного забезпечення.


12) Що це означає, якщо репліка залишається поза ISR протягом тривалого часу?

Якщо репліка залишається поза ISR протягом тривалого часу, це вказує на те, що послідовник не може отримати дані так швидко, як дані, накопичені в лідері.


13) Згадайте, що станеться, якщо бажаної репліки немає в ISR?

Якщо потрібної репліки немає в ISR, контролер не зможе переміститися leadership до бажаної репліки.


14) Чи можливо отримати зміщення повідомлення після створення?

Ви не можете зробити це з класу, який поводиться як виробник, як у більшості систем черги, його роль полягає в тому, щоб запускати та забувати повідомлення. Посередник виконає решту роботи, як-от відповідну обробку метаданих із ідентифікаторами, зміщеннями тощо. Як споживач повідомлення ви можете отримати зміщення від посередника Kafka. Якщо ви дивитеся в SimpleConsumer класу, ви помітите, що він отримує MultiFetchResponse об’єкти, які містять зміщення у вигляді списку. На додаток до цього, коли ви повторюєте повідомлення Кафки, ви матимете MessageAndOffset об’єкти, які містять як зсув, так і надіслане повідомлення.

Ці запитання для співбесіди також допоможуть вам у життєдіяльності (усному)

Поділитись

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *