Найти в Дзене
Слёрм

Проверяем глубину понимания Kafka. Часть вторая

Проверяем глубину понимания Kafka. Часть вторая На этих вопросах спотыкаются даже те, кто администрирует Kafka. А вы справитесь? В прошлый раз мы подняли важные темы — пора продолжить. Вот ещё пять каверзных, но жизненно важных вопросов, которые могут встретиться на собеседовании. Не ограничивайтесь поверхностными ответами — интервьюеры ждут понимания системы изнутри. 1. Как консьюмер может повлиять на сжатие сообщений? ➥ Ответ: Никак. Консьюмер лишь вычитывает сообщения из Kafka, которые уже были записаны туда продюсером с использованием или без сжатия. Всё решается на стороне отправителя. 2. Какие возможные ограничения есть на версии библиотек продюсеров/консьюмеров и версию самого кластера Kafka? ➥ Ответ: У Kafka есть обратная совместимость. Более новая версия кластера корректно работает со старыми версиями клиентов. Однако новые версии библиотек могут быть несовместимы со старой версией Kafka. Лайфхак: не используйте в продакшене версии ниже 2.8 — в них много багов. 3. Какое количе

Проверяем глубину понимания Kafka. Часть вторая

На этих вопросах спотыкаются даже те, кто администрирует Kafka. А вы справитесь? В прошлый раз мы подняли важные темы — пора продолжить.

Вот ещё пять каверзных, но жизненно важных вопросов, которые могут встретиться на собеседовании. Не ограничивайтесь поверхностными ответами — интервьюеры ждут понимания системы изнутри.

1. Как консьюмер может повлиять на сжатие сообщений?

➥ Ответ: Никак. Консьюмер лишь вычитывает сообщения из Kafka, которые уже были записаны туда продюсером с использованием или без сжатия. Всё решается на стороне отправителя.

2. Какие возможные ограничения есть на версии библиотек продюсеров/консьюмеров и версию самого кластера Kafka?

➥ Ответ: У Kafka есть обратная совместимость. Более новая версия кластера корректно работает со старыми версиями клиентов. Однако новые версии библиотек могут быть несовместимы со старой версией Kafka. Лайфхак: не используйте в продакшене версии ниже 2.8 — в них много багов.

3. Какое количество сообщений стоит отправлять в один топик в секунду?

➥ Ответ: Всё зависит от количества партиций. Однозначного ответа нет — требуется нагрузочное тестирование, так как есть зависимость от скорости обработки консьюмерами и размера сообщений. Но часто это около 100 сообщений в секунду на одну партицию.

4. Можно ли читать сообщения под одной консьюмер-группой из разных топиков?

➥ Ответ: Технически — можно, но крайне не рекомендуется. Особенно если сообщения читают несколько разных сервисов. В случае отказа одного из них и запуска ребалансировки — она затронет все топики этой группы. Из-за этого остановится обработка сообщений для всех консьюмеров в группе.

5. Как защититься от дублей сообщений на стороне продюсеров и консьюмеров?

➥ Ответ:

  • На стороне продюсера: включите идемпотентность (enable.idempotence=true) и настройте количество ретраев (retries).
  • На стороне консьюмера: полностью защититься только средствами Kafka нельзя. Представьте ситуацию: консьюмер обработал сообщение (записал в БД), но не смог его закоммитить из-за проблем с сетью. При рестарте он получит это сообщение снова. Поэтому ваше приложение должно быть готово к обработке дублей, например, через механизм идемпотентности на своей стороне.

На сколько вопросов ответили уверенно? Если чувствуете, что есть пробелы — это отличный повод структурировать знания.

Приходите на курс «Apache Kafka для разработчиков и аналитиков», чтобы изучить архитектуру и понять логику работы с Kafka на примере реальных бизнес-кейсов. Сможете отвечать на любые вопросы не только на собесе, но и в проде.

На курсе есть три тарифа на выбор:

  • Соло — доступ к видеолекциям, стенд для практики, свидетельство о прослушивании.
  • Стандарт — всё из «Соло» + ревью финального проекта и номерной сертификат.
  • Эксперт — всё из «Стандарта» + проверка домашних заданий и персональная обратная связь от эксперта.

Выберите тот, который подходит именно вам. Подробности — по ссылке