Обновить

Как использовать Kafka на собеседовании по System Design

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели10K
Всего голосов 9: ↑7 и ↓2+8
Комментарии7

Комментарии 7

Вот из-за таких статей потом и появляются люди, которые на каждом System Design лепят Kafka вообще без причины.. Слово выучили и теперь любую проблему пытаются решить очередью, хотя половине систем она вообще не нужна

На мой взгляд, ситуация сейчас такая, что с большим шансом найдется разработчик с опытом кафки, чем какого-то другого инструмента. И тогда кафка неплохой выбор, потому что это знакомый инструмент. Более того, и в случае увольнения найти кого-то с опытом будет проще.

Т.е. да, местами перебор, но какой ещё инструмент для очередей настолько же разрекламирован и распространён?

Думаете именно эта статья виновата? А что конкретно не так рассказано про Kafka? Читаю статьи автора и он всегда топит за то чтобы компоненты добавлялись строго там где они необходимы.

Понятно.

Если прочитать статью, то в ней рассказывается какие проблемы, возникающие в распределенных системах решает Kafka, а так же для каких сценариев (и каких примеров задач) ее стоит рассмотреть на интервью:

Вот некоторые ситуации, когда стоит рассмотреть использование очереди сообщений

Потоки полезны в следующих случаях

Если на собеседовании вы можете спроектировать систему без Kafka, решив иным образом те проблемы, для решения которых она предназначена - имеете полное право на это.

Но будьте готовы к ситуации, когда интервьюер хочет услышать от вас именно понимание того зачем нужна эта технология (она с высокой вероятностью может использоваться в их компании). Поэтому если вы упорно полчаса решали задачи обеспечения обработки сообщений по порядку или обработки пиков нагрузки своими силами, у интервьюера может сложиться впечатление, что вы не слышали о Kafka и не знаете об общепринятых в индустрии способах решения этих проблем.

Услышав от когото, а особенно на сисдизе "темы" и "разделы" вместо топиков и партишнов, можно сразу заканчивать разговор. Этим страдают только теоретики, которые никогда с кафкой серьезно не работали и в исходную документацию точно не заглядывали. Не могу понять зачем переводить устоявшиеся термины, которые итак понятно звучат в виде англицизма.

Kafka может использоваться как очередь сообщений или как система потоковой обработки.

А почему вдруг тут категоричное "или"? Кто помешает одновременно использовать и как очередь и как поток событий? Хотя опять же упоминать очередь на кафке и не упоминать соответствующий KIP и оно до сих пор не продакшн реди это прям подстава, т.к. без этого дальше разговор смысла не имеет, т.к. говорящий не знает как оно действительно работает. А если вдруг в статье вообще про это и не планировалось упоминать, то я не понимаю какие очереди на кафке могут быть, т.к. никто не будет реализовывать семантику очередей в софте а просто возьмет настоящую очередь и тут собеседник тоже только ударит в грязь лицом.

Услышав от когото, а особенно на сисдизе “топики” и “партишены” вместо тем и разделов , можно сразу заканчивать разговор. Этим страдают только теоретики, которые никогда с кафкой серьезно не работали и профессиональную литературу по ней не читали. Не могу понять зачем использовать англицизмы, которые итак понятно звучат в виде русских слов.

упоминать очередь на кафке и не упоминать соответствующий KIP и оно до сих пор не продакшн реди это прям подстава, т.к. без этого дальше разговор смысла не имеет, т.к. говорящий не знает как оно действительно работает.

никто не будет реализовывать семантику очередей в софте а просто возьмет настоящую очередь и тут собеседник тоже только ударит в грязь лицом.

Короче, дети, запоминаем:

  1. Соответствующий KIP

  2. Продакшен реди

  3. Семантика очередей.

Учим эти три термина, пихаем в ответ на собесе, и орём, что чтение проф литературы - это такой же зашквар теоретиков, как учёба. Получаем работу, начинаем выпендриваться на Хабре.

Услышав от когото, а особенно на сисдизе "темы" и "разделы" вместо топиков и партишнов

Еще от коллег из российского бигтеха я часто слышу "партиции" вместо "разделов".
Если кому то это не режет слух - я не против, но, пожалуйста, без меня.

А почему вдруг тут категоричное "или"? Кто помешает одновременно использовать и как очередь и как поток событий? 

Никакого категоричного "или" и никто не мешает. Сразу после упомянутой вами цитаты в статье объясняются сценарии использования Kafka и их категоризация для того чтобы менее посвященному читателю было легче понять, что для чего нужно.

можно сразу заканчивать разговор
без этого дальше разговор смысла не имеет, т.к. говорящий не знает как оно действительно работает

А я бы (и надеюсь многие другие интервьюеры) продолжил бы разговор с кандидатом, который не удовлетворил вашим требованиям. Kafka - лишь один из компонентов, который может использоваться при построении систем на System Design интервью.
Хороший интервьер проверяет как кандидат мыслит и как подходит к решению возникающих вопросов.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации