Согласно документации Кафки,
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 распределяется по дизайну, что обеспечивает гарантии отказоустойчивости и надежности.
Заключение
Я надеюсь, что это послужит кратким введением в Кафку, и этого будет достаточно, чтобы заинтересовать вас и проверить. Это открытый исходный код, что вас останавливает?
Этот пост является частью серии, в которой обсуждаются различные инструменты, используемые при реализации микросервисов.