Я попытаюсь распаковать несколько тем в контексте 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 .