Согласно документации Кафки,

Apache Kafka — это распределенная платформа потоковой передачи событий с открытым исходным кодом, используемая тысячами компаний для высокопроизводительных конвейеров данных, потоковой аналитики, интеграции данных и критически важных приложений.

Хотя это точное определение, оно очень высокого уровня и не передает простыми словами, что на самом деле делает Кафка. Цель этого поста — объяснить простыми словами, что делает Kafka, и некоторые плюсы использования Kafka вместо других подобных сервисов, таких как Redis, Memcached, RabbitMQ и т. д.

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

Типичная установка или развертывание Kafka состоит из серверов и клиентов, которые обмениваются данными по сети.

Серверы в основном представляют собой машины или контейнеры, на которых работает Kafka. Обычно их делят на две категории: брокерыи серверы, на которых работает Kafka Connect, что облегчает интеграцию Kafka с существующей инфраструктурой данных, такой как реляционные базы данных и другие кластеры Kafka.

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

Основные концепции и компоненты Кафки

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

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

Производители – это клиентские приложения, которые публикуют (записывают) события в Kafka, получают события и пересылают их в тему Kafka.

Потребители — это клиентские приложения, которые подписываются (потребляют) на эти события, публикуемые производителями. Они в основном читают и обрабатывают события.

Почему вам следует использовать Kafka

  • Быстро. Kafka работает быстрее, чем традиционные методы, используемые для потоковой передачи событий. Один брокер Kafka может обслуживать тысячи клиентов, обрабатывая мегабайты операций чтения и записи в секунду.
  • Масштабируемость: в Kafka данные секционируются и упорядочиваются по кластеру компьютеров, что позволяет обрабатывать большие объемы данных.
  • Надежность. В отличие от других методов, сообщения в Kafka сохраняются и реплицируются в кластере для предотвращения потери данных.
  • Распределенный: Kafka распределяется по дизайну, что обеспечивает гарантии отказоустойчивости и надежности.

Заключение

Я надеюсь, что это послужит кратким введением в Кафку, и этого будет достаточно, чтобы заинтересовать вас и проверить. Это открытый исходный код, что вас останавливает?

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