Apache Kafka — это распределённая платформа потоковой обработки сообщений, которая хранит и передаёт события в виде устойчивого лога. Её используют для обмена сообщениями между сервисами, построения событийно-ориентированной архитектуры, логирования и обработки потоков данных в реальном времени.
Apache Kafka — это распределённая платформа для работы с потоками событий (event streaming platform), которая позволяет надёжно публиковать, хранить и потреблять большие объёмы сообщений в режиме реального времени. В основе лежит идея логов: данные записываются последовательно в топики и хранятся на диске в течение настраиваемого времени.
Kafka масштабируется по горизонтали за счёт разбиения топиков на партиции, которые распределяются по нескольким брокерам. Это даёт высокую пропускную способность и отказоустойчивость: данные реплицируются между брокерами, а при падении узла лидерство и обработка партиций автоматически переключаются.
Ключевые сущности: producer публикует сообщения в топики, consumer считывает их, broker хранит данные, а consumer group позволяет масштабировать обработку и балансировать нагрузку между несколькими потребителями.
Kafka применяют в типовых задачах:
В отличие от классических брокеров сообщений, Kafka ориентирована на хранение потоков данных в течение длительного времени, повторное чтение сообщений и высокую пропускную способность. Её часто используют как «шину данных» для компании, поверх которой строят и стриминговую обработку (через Kafka Streams или другие фреймворки), и интеграцию сервисов, и каналы доставки данных в хранилища и аналитические системы.
Отметьте свой прогресс