Что такое 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

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

16 часов ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

16 часов ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

16 часов ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

16 часов ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

16 часов ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

16 часов ago