Привет всем, как мы все теперь знаем, что при разработке приложений важно отправлять сообщения из одной службы в другую, нам нужна платформа, которая может помочь нам в передаче данных из одной системы в другую.
Итак, для такого рода обмена сообщениями у нас есть разные системы обмена сообщениями, такие как
- Кафка
- RabbitMQ
- ActiveMQ
- ZMQ
Различий между ними немного, но наиболее часто используемым инструментом является KAFKA, поэтому даже на собеседованиях по дизайну возникает много вопросов, связанных с Kafka.
Делюсь некоторыми наиболее часто задаваемыми вопросами о Кафке, с которыми я сталкивался во время интервью.
- Что такое Кафка, почему мы его используем?
- Объясните некоторые ключевые особенности Кафки?
- Что такое темы и разделы в Kafka?
- Что такое производитель, потребитель и группа потребителей?
- Как Kafka распределяет нагрузку между разными разделами?
- Сколько потребителей у нас может быть, если мы потребляем из одной темы?
- Что такое Лаг?
- Что вызывает отставание и как мы можем это исправить?
- Как мы можем улучшить производительность, если у нас есть ограниченное количество потребителей?
- Что такое Брокер или Кафка Брокер?
- Что понимается под отказоустойчивостью? Как Кафка справляется с неудачами?
- Почему количество потребителей вообще нечетное?
- Объясните некоторые варианты использования Kafka?
- Разница между Кафкой и RabbitMQ?
- Что такое фактор репликации в Кафке?
- Что такое офсет?
- Что такое зоопарк и как он работает?
- Как Kafka помогает в разработке приложений на основе микросервисов?
- Каков алгоритм выбора Лидера?
- Как происходит балансировка нагрузки в Kafka?
Помимо подготовки к приведенным выше вопросам, попробуйте поработать над некоторыми проектами, использующими Kafka, это поможет лучше понять его.
Скоро поделюсь ответами.
Если у вас есть какие-либо сомнения, дайте мне знать в комментариях ниже.
Продолжайте читать и удачного интервью!!!
Если вам нравится мой контент, подписывайтесь на меня на Medium и Linkedin