Распределенная обработка - Apache Spark, Flink, Samza, Siddhi, Hazelcast Jet - PullRequest
0 голосов
/ 06 ноября 2019

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

Задачи могут быть спроектированы как простые службы, которые обрабатывают сообщения из message-queues, доставленные ему другими такими службами. и отправьте результат в другую очередь для дальнейшей обработки. Вместо очереди система может использовать потоки для обработки. Я считаю, что этот подход (сервисы записи, связанные с брокером сообщений) должен повторять обработку их сценариев сбоев, масштабирования и пропускной способности.

Существуют ли какие-либо конкретные структуры (такие как Flink или Samza или Storm или Airflow или Siddhi или Hazelcast Jet)реализовывать такие задачи и развертывать их в кластере, который заботится о масштабировании и обработке сбоев, вместо того, чтобы реализовывать каждую задачу как подробные сервисы (например, весной) и масштабировать их независимо.

1 Ответ

1 голос
/ 06 ноября 2019

По вашему описанию Hazelcast Jet может сделать все это в одном развернутом задании / конвейере: получать данные из конечной точки REST, обогащать с боковых входов («db или другие веб-сервисы»), обрабатывать данные в каскаде шаговгде каждый шаг выполняется параллельно с данными, и, наконец, помещает данные в другую очередь.

Такое задание может выполняться неограниченное количество времени в кластере машин. Единственная проблема, которую я вижу, это перезапуск после сбоев, потому что источник данных REST не воспроизводится.

...