Понимание роли различных компонентов в Apache Kafka

Что такое Apache Kafka?

Apache Kafka - это данные. Все дело в надежной, быстрой и масштабируемой передаче больших объемов данных.

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

Проблемы и ограничения в обмене сообщениями

Обмен сообщениями - это довольно простая парадигма передачи данных между приложениями и хранилищами данных.

Однако с этим связано несколько проблем:

  • Ограниченная масштабируемость из-за того, что брокер становится узким местом.
  • Напряженные брокеры сообщений из-за большего размера сообщения.
  • Потребители могут потреблять сообщения с разумной скоростью.
  • Потребители демонстрируют отсутствие отказоустойчивости, следя за тем, чтобы потребляемые сообщения не ушли навсегда.

Ограничения обмена сообщениями

Ограничения обмена сообщениями связаны с:

1. Большой объем

Приложения обмена сообщениями размещаются на одном хосте или узле. Следовательно, существует вероятность того, что брокер станет узким местом из-за одного хоста или локального хранилища.

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

2. Ошибки приложения

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

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

Повторная обработка всех сообщений после исправления ошибки также является задачей.

3. Логика промежуточного программного обеспечения

Различные приложения, которые действуют как издатель-подписчик, имеют настраиваемую логику для записи брокеру. У каждого из них разная обработка ошибок. Следовательно, в этом случае будет сложно поддерживать согласованность данных.

Решение проблем

Как Кафка решает эти проблемы?

  • Обеспечивает высокую пропускную способность для больших объемов данных в терабайтах и ​​более.
  • Масштабируемость по горизонтали и возможность масштабирования за счет добавления машин для беспрепятственного распределения нагрузки.
  • Обеспечивает надежность, при которой никакие данные не будут потеряны в случае сбоя.
  • Имеет слабую связь между издателями и потребителями, если они участвуют только в обмене данными.
  • Он использует семантику обмена сообщениями pub-sub, когда независимые приложения отправляют данные по теме, а заинтересованные подписчики могут получать данные по теме.

Вы можете посмотреть видеоинструкцию по:

  1. Настройка кластера Apache Kafka.
  2. Настройка ZooKeeper и брокера.
  3. Выдача сообщений по теме.
  4. Получение сообщений из той же темы.

Шаги видеоурока перечислены ниже:

Ссылки