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.