Что такое Kafka

Обновлено и опубликовано Опубликовано:

Kafka —
простыми словами

программный брокер сообщений, то есть приложение, которое принимает данные от другой программы, хранит их в своей базе и отдает информацию другой программе. Kafka была разработана в LinkedIn, после исходный код был передан в Apache Software Foundation.

Область применения кафки сфокусирована в отраслях, где требуются сбор, обработка, безопасное хранение и передача больших объемов данных, например:

  • Онлайн-игры.
  • Социальные сети.
  • Банковские системы.
  • Системы геопозиционирования.
  • Анализ данных (большие объемы).
  • Системы с множеством датчиков, сенсоров, контроллеров и других конечных устройств (например, интернет вещей).

Архитектурно в процессе работы Kafka Apache участвуют следующие сущности:

  • Продюсер (producer) — то, что генерирует и посылает данные брокеру;
  • Потребитель (consumer) — тот, кто принимает отправленные продюсером сообщения;
  • Сообщение — данные, необходимый для совершения какой-либо операции (например, авторизации, оформления покупки или подписки);
  • Брокер — узел для передачи данных от продюсера к потребителю;
  • Топик (тема) — хранилище сгруппированных сообщений (по разным признакам), из которого потребитель извлекает необходимую ему информацию.

Преимущества:

  • Возможность долгого хранения данных.
  • Бесплатность и открытый исходный код.
  • Алгоритмы работы заточены на высокую производительность.
  • Механизмы защиты данных для обеспечения большей безопасности.
  • Возможность установки и настройки в режиме кластера для отказоустойчивости.
  • Простая масштабируемость за счет добавления узлов (горизонтальная масштабируемость).

Популярный аналог кафки — RabbitMQ. В целом, оба программных продукта позволяют реализовать очереди запросов. Но есть несколько нюансов:

  1. Способы доставки сообщений: Kafka использует pull (получатель сам достает сообщение), а RabbitMQ — push (брокер сам отправляет сообщение).
  2. Kafka хранит данные, пока не достигнет установленного администратором предела. RabbitMQ удаляет сообщение после отправки его получателю.
  3. При высоких нагрузках RabbitMQ обладает меньшей производительностью из-за реализованного гибкого управления.

Еще немного о Kafka на Википедии.


Дмитрий Моск
— IT-специалист.
Настройка серверов, услуги DevOps.

Другие термины

STUN   Интернет-провайдер   1С:Предприятие   Оперативная память   LXC/LXD   Терминальный сервер   URL   NGINX   Gradle   FAT   RAW (формат)   Mail.ru   RAW (файловая система)   NET Framework   Vlan   РЕД ОС   MBR   Домен   Terraform   Flash Player  
.....

Реклама