Инструмент потоковой передачи данных из открытых источников LinkedIn


LinkedIn предоставил открытый исходный код своего инструмента для потоковой передачи данных между системами. Brooklin описывается как распределенная служба для потоковой передачи данных почти в реальном времени и в любом масштабе.

Инструмент работает в LinkedIn с 2016 года и обрабатывает тысячи потоков данных и более 2 триллионов сообщений в день. Он предоставляет набор абстракций, которые означают, что его можно расширить для поддержки потребления и производства данных в новые системы и из них путем написания новых потребителей и производителей Brooklin.

LinkedIn использует Brooklin в качестве основного решения для потоковой передачи данных в различных магазинах, включая Espresso и Oracle, а также в системах обмена сообщениями, включая Kafka, Azure Event Hubs и AWS Kinesis.

Brooklin был разработан для использования в многопользовательских системах и может одновременно обеспечивать питание сотен конвейеров данных в разных системах. Создание новых конвейеров данных или потоков данных и изменение существующих может быть выполнено с помощью простого HTTP-вызова конечной точки REST. Brooklin также предоставляет диагностическую конечную точку REST, которую можно использовать для запроса состояния потока данных по запросу. Системы источника и назначения не обязательно должны быть одинаковыми, и их можно свободно смешивать и согласовывать. Потоки данных обрабатываются одновременно и независимо, что означает, что ошибки в одном потоке изолированы от остальных.

Разработчики Brooklin говорят, что, поскольку это специальный сервис для потоковой передачи данных в различных средах, всеми сложностями можно управлять в рамках одного сервиса, поэтому разработчики приложений могут сосредоточиться на обработке данных, а не на перемещении данных. Централизованная расширяемая структура также означает, что организации могут применять политики. Например, Brooklin можно настроить для обеспечения соблюдения политик в масштабах компании, например, требуя, чтобы все поступающие данные были в формате JSON или любые исходящие данные должны быть зашифрованы.

Говоря о выпуске с открытым исходным кодом, технический менеджер LinkedIn Селия Кунг сказала, что Brooklin используется в LinkedIn в качестве альтернативы Kafka MirrorMaker для зеркалирования данных Kafka из одного кластера Kafka в другой:

«Поскольку Brooklin был разработан как универсальный мост для потоковой передачи данных, мы смогли легко добавить поддержку для перемещения огромных объемов данных Kafka».

«Одним из наиболее распространенных вариантов использования Brooklin в качестве потокового моста в LinkedIn является зеркалирование данных Kafka между кластерами и центрами обработки данных. Kafka широко используется в LinkedIn для хранения всех типов данных, таких как ведение журналов, отслеживание, метрики и многое Мы используем Brooklin для агрегирования этих данных в наших центрах обработки данных, чтобы упростить доступ к ним в централизованном месте. Мы также используем Brooklin для перемещения больших объемов данных Kafka между LinkedIn и Azure ».

Релиз с открытым исходным кодом доступен на GitHub.


Добавить комментарий