Динамический c механизм потока оркестровки сообщений для Kafka - PullRequest
1 голос
/ 26 февраля 2020

Я пытаюсь увидеть, какие возможные наборы инструментов / инфраструктуры доступны для достижения следующих целей.

  1. Набор инструментов, где разработчик обычно должен настраивать поток данных (который представляет собой последовательность шагов) сформировать конвейер обработки данных. Декларативный подход с нулевым или очень минимальным кодированием.
  2. Базовая инфраструктура обмена сообщениями должна быть Kafka - ie, инструментарий должен поддерживать Kafka прямо из коробки (когда включены правильные зависимости).
  3. Очень интуитивно понятный для визуализации, развертывания, отладки потоков.
  4. Возможности агрегирования (сгруппированы по) и c для потоковых данных.

Я вижу Spring Cloud Data Flow как то, что можно (возможно) опробовать в качестве кандидата? Для этого ли это (от людей, использующих его на производстве)?

Есть ли какие-либо альтернативы с открытым исходным кодом?

1 Ответ

3 голосов
/ 26 февраля 2020

Я попытаюсь распаковать несколько тем в контексте Spring Cloud Data Flow (SCDF).

Инструментарий, в котором разработчик обычно должен настраивать поток данных (который представляет собой последовательность шагов ) сформировать конвейер обработки данных. Декларативный подход с нулевым или очень минимальным кодированием.

Существует ~ 70 приложений для интеграции данных , которые мы поддерживаем и отправляем. Они должны охватывать наиболее распространенные варианты использования. Каждое из них является приложением Spring Cloud Stream, и бизнес-логика c в них может работать как есть с разнообразными брокерами сообщений , которые поддерживает инфраструктура, включая Kafka и Kafka Streams.

Однако, если у вас есть пользовательское требование к обработке данных, и нет приложения, которое могло бы удовлетворить эту потребность, вам придется создавать пользовательский стиль приложений, процессоров или приемников. Если вы не хотите использовать Java, возможны также рабочие нагрузки полиглота .

SCDF позволяет собирать приложения в последовательный конвейер потоковых данных [см. руководство разработчика потоков ]. Затем SCDF организует развертывание приложений в конвейере данных на целевых платформах, таких как Kubernetes, в качестве собственных ресурсов.

Поскольку эти приложения связаны друг с другом через постоянных пабов / субброкеров (например, Kafka), SCDF также предоставляет примитивы для CI / CD, roll-upgrade и roll-rollback * 1024. * отдельные приложения в конвейере потоковой передачи данных, не вызывая воздействия вверх или вниз по потоку. Порядок и гарантии данных сохраняются также потому, что мы полагаемся на него и делегируем его базовому посреднику сообщений.

Базовая инфраструктура обмена сообщениями должна быть Kafka - ie инструментарий должен поддерживать Kafka прямо из поле (когда включены правильные зависимости).

Это уже описано в предыдущем ответе. Здесь следует отметить, что в будущем, если вы захотите переключиться с Kafka на, скажем, Azure Event Hubs, в бизнес-логике c требуется абсолютно нулевое изменение кода. Рабочая нагрузка Spring Cloud Stream переносима, и вы не привязываетесь ни к одной технологии, такой как Kafka.

Очень интуитивно понятен для визуализации, развертывания и отладки потоков

SCDF поддерживает интерфейс drag + drop , интеграцию с инструментами наблюдения, такими как Prometheus + Grafna , и основанное на показателях автоматическое масштабирование приложений в конвейере данных.

Все вышеперечисленное также возможно выполнить sh путем непосредственного использования API SCDF , Java DSL (программирование c создание конвейеров данных - критично для автоматизации CI / CD) или Shell / CLI .

Возможности агрегирования (сгруппированы по) и c при потоковой передаче данных

Когда используя реализацию связующего Kafka Streams, вы можете создавать комплексные объединения, агрегирования и аналитику с учетом состояния - см. samples .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...