Что такое Kafka

Kafka

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

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

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

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

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

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

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

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

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

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

admin

Share
Published by
admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

1 неделя ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

1 неделя ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

1 неделя ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

1 неделя ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

1 неделя ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

1 неделя ago