Проверяем глубину понимания Kafka. Часть вторая
На этих вопросах спотыкаются даже те, кто администрирует Kafka. А вы справитесь? В прошлый раз мы подняли важные темы — пора продолжить.
Вот ещё пять каверзных, но жизненно важных вопросов, которые могут встретиться на собеседовании. Не ограничивайтесь поверхностными ответами — интервьюеры ждут понимания системы изнутри.
1. Как консьюмер может повлиять на сжатие сообщений?
➥ Ответ: Никак. Консьюмер лишь вычитывает сообщения из Kafka, которые уже были записаны туда продюсером с использованием или без сжатия. Всё решается на стороне отправителя.
2. Какие возможные ограничения есть на версии библиотек продюсеров/консьюмеров и версию самого кластера Kafka?
➥ Ответ: У Kafka есть обратная совместимость. Более новая версия кластера корректно работает со старыми версиями клиентов. Однако новые версии библиотек могут быть несовместимы со старой версией Kafka. Лайфхак: не используйте в продакшене версии ниже 2.8 — в них много багов.
3. Какое количество сообщений стоит отправлять в один топик в секунду?
➥ Ответ: Всё зависит от количества партиций. Однозначного ответа нет — требуется нагрузочное тестирование, так как есть зависимость от скорости обработки консьюмерами и размера сообщений. Но часто это около 100 сообщений в секунду на одну партицию.
4. Можно ли читать сообщения под одной консьюмер-группой из разных топиков?
➥ Ответ: Технически — можно, но крайне не рекомендуется. Особенно если сообщения читают несколько разных сервисов. В случае отказа одного из них и запуска ребалансировки — она затронет все топики этой группы. Из-за этого остановится обработка сообщений для всех консьюмеров в группе.
5. Как защититься от дублей сообщений на стороне продюсеров и консьюмеров?
➥ Ответ:
На сколько вопросов ответили уверенно? Если чувствуете, что есть пробелы — это отличный повод структурировать знания.
Приходите на курс «Apache Kafka для разработчиков и аналитиков», чтобы изучить архитектуру и понять логику работы с Kafka на примере реальных бизнес-кейсов. Сможете отвечать на любые вопросы не только на собесе, но и в проде.
На курсе есть три тарифа на выбор:
Выберите тот, который подходит именно вам. Подробности — по ссылке
На этих вопросах спотыкаются даже те, кто администрирует Kafka. А вы справитесь? В прошлый раз мы подняли важные темы — пора продолжить.
Вот ещё пять каверзных, но жизненно важных вопросов, которые могут встретиться на собеседовании. Не ограничивайтесь поверхностными ответами — интервьюеры ждут понимания системы изнутри.
1. Как консьюмер может повлиять на сжатие сообщений?
➥ Ответ: Никак. Консьюмер лишь вычитывает сообщения из Kafka, которые уже были записаны туда продюсером с использованием или без сжатия. Всё решается на стороне отправителя.
2. Какие возможные ограничения есть на версии библиотек продюсеров/консьюмеров и версию самого кластера Kafka?
➥ Ответ: У Kafka есть обратная совместимость. Более новая версия кластера корректно работает со старыми версиями клиентов. Однако новые версии библиотек могут быть несовместимы со старой версией Kafka. Лайфхак: не используйте в продакшене версии ниже 2.8 — в них много багов.
3. Какое количество сообщений стоит отправлять в один топик в секунду?
➥ Ответ: Всё зависит от количества партиций. Однозначного ответа нет — требуется нагрузочное тестирование, так как есть зависимость от скорости обработки консьюмерами и размера сообщений. Но часто это около 100 сообщений в секунду на одну партицию.
4. Можно ли читать сообщения под одной консьюмер-группой из разных топиков?
➥ Ответ: Технически — можно, но крайне не рекомендуется. Особенно если сообщения читают несколько разных сервисов. В случае отказа одного из них и запуска ребалансировки — она затронет все топики этой группы. Из-за этого остановится обработка сообщений для всех консьюмеров в группе.
5. Как защититься от дублей сообщений на стороне продюсеров и консьюмеров?
➥ Ответ:
- На стороне продюсера: включите идемпотентность (enable.idempotence=true) и настройте количество ретраев (retries).
- На стороне консьюмера: полностью защититься только средствами Kafka нельзя. Представьте ситуацию: консьюмер обработал сообщение (записал в БД), но не смог его закоммитить из-за проблем с сетью. При рестарте он получит это сообщение снова. Поэтому ваше приложение должно быть готово к обработке дублей, например, через механизм идемпотентности на своей стороне.
На сколько вопросов ответили уверенно? Если чувствуете, что есть пробелы — это отличный повод структурировать знания.
Приходите на курс «Apache Kafka для разработчиков и аналитиков», чтобы изучить архитектуру и понять логику работы с Kafka на примере реальных бизнес-кейсов. Сможете отвечать на любые вопросы не только на собесе, но и в проде.
На курсе есть три тарифа на выбор:
- Соло — доступ к видеолекциям, стенд для практики, свидетельство о прослушивании.
- Стандарт — всё из «Соло» + ревью финального проекта и номерной сертификат.
- Эксперт — всё из «Стандарта» + проверка домашних заданий и персональная обратная связь от эксперта.
Выберите тот, который подходит именно вам. Подробности — по ссылке