Несколько точек:
Режим приложения , представленный в Flink 1.11, позволяет одному методу main()
отправлять несколько заданий, но нет механизма для прямой связи между этими заданиями. Подход Flink к отказоустойчивости с помощью моментальных снимков не распространяется на управление состоянием более чем в одной задаче. Но вы откажетесь от отказоустойчивости, если сделаете это.
Вы можете добиться чего-то похожего на то, о чем вы просили, настроив группу совместного использования слотов, которая заставляет заключительный этап (ы) конвейера в их собственный слот (ы). Тем не менее, это почти наверняка плохая идея, так как это приведет к принудительному запуску, который в противном случае может быть ненужным, а также приведет к более низкому использованию ресурсов. Но он разделит эти этапы конвейера на другую JVM.
Если цель состоит в том, чтобы иметь отдельно развертываемые и независимо масштабируемые компоненты, вы можете получить это, используя удаленные функции с Stateful Functions API .
Чтобы максимизировать производительность (и свести к минимуму сборку мусора) с помощью того типа задания ETL, который вы показали, вам, вероятно, будет лучше, если вы воспользуетесь преимуществами объединения операторов и повторного использования объектов и сохраните все в одном задании .