Являются ли механизм рабочего потока и структура потока событий альтернативными для уровня оркестровки? - PullRequest
0 голосов
/ 22 октября 2019

Мне необходимо внедрить службу управления документами в качестве уровня оркестровки, который управляет между базовыми службами, такими как хранилище, анализ, антивирусное сканирование и т. Д. Требуется сделать слой гибким, чтобы различные потоки для разных типов документов могли бытьреализовано быстро
Один из подходов состоит в том, чтобы смоделировать это как систему, управляемую событиями, и реализовать конвейер обработки событий, используя такую ​​среду, как Apache Flink.
Еще один способ думать об этом - рабочий процесс. Спроектируйте это как рабочий процесс, работающий на механизме рабочих процессов, таком как Apache Airflow или Uber Cadence.
Что будет лучшим подходом.

Ответы [ 2 ]

1 голос
/ 23 октября 2019

Отказ от ответственности: я технический лидер Cadence Workflow . Но я знаю кое-что о Flink и Airflow :).

Было бы довольно сложно реализовать оркестровку с помощью Flink. Причина в том, что Flink - это решение для потоковой обработки, которое оптимизировано для очень быстрой обработки каждого запроса. Оркестровка должна иметь дело с медленными запросами или сервисами, которые долгое время не работают. Flink не поддерживает такие сценарии из коробки. Он также моделирует обработку в виде статического графа, в то время как оркестровка часто является очень динамичным конечным автоматом.

Воздушный поток также основан на статическом графе. Так что он не очень подходит для сложных сценариев, которые не вписываются в его парадигму DAG. Еще более серьезная проблема с Airflow - его очень ограниченная масштабируемость. Вот почему я никогда не слышал, чтобы его использовали для оркестрации сервисов за пределами плоскости управления конвейера данных, где масштабируемость на самом деле не нужна.

Рабочий процесс Cadence с самого начала создавался как очень динамичная и легко масштабируемая система оркестрации. В Uber и за его пределами существует множество сценариев использования сервисов с высокой пропускной способностью, которые зависят от Cadence. Например, каждый раз, когда кто-то нажимает кнопку «Tip Driver» в приложении Uber, запускается рабочий процесс Cadence, который управляет транзакцией.

0 голосов
/ 24 октября 2019

Есть люди, которые строят платформы поверх Flink, которые поддерживают варианты использования, более похожие на то, что вы описываете, чем то, что прямо делается с помощью самого Flink. В частности, я хочу предложить вам взглянуть на Stateful Functions , которая является новой библиотекой с открытым исходным кодом от Ververica, оригинальных создателей Flink. Из того, что я понял о ваших требованиях, кажется, что это может подойти.

Cogynt - еще один пример этой тенденции построения платформ поверх Flink для поддержки вариантов использования. которые было трудно реализовать с помощью самого Flink, используя при этом его высокопроизводительный, отказоустойчивый, точно однократный процессор потоковой обработки.

Отказ от ответственности: я работаю на Ververica.

...