Apache Kafka, разработка LinkedIn 2010 года, позволяет обрабатывать триллионы сообщений ежедневно. В 2025 году LinkedIn разрабатывает Northguard, новую систему, не заменяющую, но дополнящую Kafka.
Kafka – стильная, модная, молодежная технология, которую разработала в 2011 году компания LinkedIn и значительно усовершенствовал Apache ...See more
создание горизонтально масштабируемой платформы для обработки потоковых данных в реальном времени с высокой пропускной способностью и низкой зад ...
Apache Kafka заточена под пропускную способность, которая обеспечивается за счет того, что мы жертвуем latency и jitter при сохранении остальных ...
Kafka was developed around 2010 at LinkedIn by a team that included Jay Kreps, Jun Rao, and Neha Narkhede. The problem they originally set ...
LinkedIn observed that the Kafka approach can be inefficient when handling data skew, because each replica has to store the entire copy of the ...
Будучи краеугольным камнем современной распределённой инфраструктуры, Apache Kafka, разработанная LinkedIn в 2010 году, превратилась в ключевой инструмент для асинхронной передачи потоковых данных в реальном времени, но даже для своего создателя она не остаётся универсальным решением.
LinkedIn, один из пионеров в области обработки больших данных, столкнулся с острой необходимостью создания масштабируемой и отказоустойчивой системы для управления постоянно растущим объёмом пользовательских данных и системных метрик. К 2025 году Kafka, названная в честь писателя Франца Кафки Джеем Крепсом, Нией Нархид и Цзюнем Жао, стала де-факто стандартом в области потоковой обработки данных, способной ежедневно обрабатывать триллионы сообщений. Однако, как показала недавняя практика LinkedIn, даже её создатель ищет новые решения для своих планетных масштабов, разрабатывая новую систему Northguard.
В основе появления Kafka лежало стремление заменить неэффективные и требовательные к ручному управлению пайплайны обработки данных.
До появления Kafka инфраструктура обработки данных в LinkedIn была фрагментирована и демонстрировала существенные ограничения:
К 2011 году Kafka уже обрабатывала более миллиарда событий в день, демонстрируя свою эффективность в решении задач, с которыми сталкивались компании, работающие с крупными объёмами данных.
Kafka радикально отличается как от традиционных реляционных баз данных, так и от классических брокеров сообщений.
Несмотря на возможность использовать Kafka как очередь сообщений, её архитектура ближе к «шине данных».
Kafka также предлагает Streams API и возможности интеграции с внешними инструментами (Apache Flink, Spark, Samza), что позволяет не только хранить, но и обрабатывать данные в реальном времени непосредственно в потоке.
Kafka хорошо подходит для ряда технических задач, таких как:
Тем не менее, Kafka может быть избыточной для небольших проектов без требований к обработке данных в реальном времени. Она не подходит для тривиальных баз данных, сценариев, где не требуется потоковое чтение, или для очередей, требующих сложных схем обработки сообщений (например, request/reply, которые лучше реализуются в RabbitMQ).
Хотя Kafka остаётся мощным инструментом, активно используемым многими крупными компаниями, включая Netflix (которая ежедневно обрабатывает до 500 млрд событий с пиковой нагрузкой в 8 млн событий в секунду), ландшафт обработки данных постоянно меняется. В 2014 году основные авторы Kafka покинули LinkedIn, чтобы основать компанию Confluent, которая коммерциализовала проект и стала публичной в 2021 году с капитализацией в 10 млрд долларов.
Примечательно, что в 2025 году LinkedIn объявила о разработке новой системы Northguard для замены Kafka в отдельных сценариях, что свидетельствует о непрерывных попытках оптимизации инфраструктуры для удовлетворения растущих потребностей в «планетном масштабе». Это подчёркивает, что даже для технологий, ставших отраслевыми стандартами, развитие не останавливается, а поиск специализированных решений для конкретных задач остаётся актуальным. Как отметил Танвир Ахмед из LinkedIn, «ответ всегда будет зависеть от вашего конкретного случая использования».
Kafka, её структура данных «log» и экосистема API, включая Producer API, Consumer API, Connector API (например, Kafka Connect), Streams API (например, Kafka Streams), и Admin API, продолжает развиваться. В последних версиях Kafka (начиная с 2.8) обеспечена возможность работы без ZooKeeper, а репликация данных и управление отказами интегрированы напрямую.
Для демонстрации простоты интеграции рассмотрим пример работы с Kafka, используя управляемый сервис, такой как Kafka-as-a-service от Selectel, актуальный на 2025 год.
Пример кода на Python для записи данных в Kafka:
Пример кода на Python для чтения данных из Kafka:
Данные примеры, использовавшие библиотеку kafka-python, демонстрируют базовые операции записи и чтения, подчёркивая низкий порог входа для использования Kafka в облачных средах. Альтернативной библиотекой является confluent-kafka.
Таким образом, Kafka, созданная как ответ на специфические проблемы LinkedIn, превратилась в универсальное решение для потоковой обработки данных, способное адаптироваться к новым вызовам и оставаться актуальной даже при появлении более специализированных альтернатив.
Kafka – стильная, модная, молодежная технология, которую разработала в 2011 году компания LinkedIn и значительно усовершенствовал Apache ...See more
создание горизонтально масштабируемой платформы для обработки потоковых данных в реальном времени с высокой пропускной способностью и низкой зад ...
Apache Kafka заточена под пропускную способность, которая обеспечивается за счет того, что мы жертвуем latency и jitter при сохранении остальных ...
Kafka was developed around 2010 at LinkedIn by a team that included Jay Kreps, Jun Rao, and Neha Narkhede. The problem they originally set ...
LinkedIn observed that the Kafka approach can be inefficient when handling data skew, because each replica has to store the entire copy of the ...
Вопросы и ответы