Оглавление:
Определение - Что означает Apache Kafka?
Apache Kafka - это система сообщений с открытыми публикациями и подпиской, разработанная для обеспечения быстрой, масштабируемой и отказоустойчивой обработки потоков данных в реальном времени. В отличие от традиционного программного обеспечения для обмена корпоративными сообщениями, Kafka может обрабатывать все данные, проходящие через компанию, и делать это практически в реальном времени.
Kafka написан на Scala и изначально был разработан LinkedIn. С тех пор ряд компаний использовали его для создания платформ в реальном времени.
Техопедия объясняет Апаче Кафку
Kafka имеет много общего с журналами транзакций и поддерживает потоки сообщений в темах. Производители записывают данные в разделы, а потребители - из этих разделов, которые распределяются и реплицируются по нескольким узлам в формате распределенной системы. Kafka уникален тем, что каждый раздел темы обрабатывается как журнал, а каждому сообщению в разделе присваивается уникальное смещение. Он сохраняет все сообщения в течение определенного периода времени, и потребители несут ответственность за отслеживание своего местоположения в каждом журнале. Это отличается от предыдущих систем, где за это отслеживание отвечали брокеры, что сильно ограничивало способность системы масштабироваться по мере увеличения числа потребителей. Эта структура позволяет Kafka поддерживать множество потребителей и сохранять большие объемы данных с очень низкими издержками.
Кафка может быть использована:
- Как традиционный брокер сообщений
- Для отслеживания активности сайта
- Для агрегации журналов
- Для обработки больших потоков данных
Kafka может использоваться вместе с Apache Storm, Apache HBase и Apache Spark для анализа в реальном времени и рендеринга потоковых данных.