Может ли подчиненный процесс динамически выделяться в зависимости от нагрузки с использованием потока данных Spring Cloud?

В настоящее время мы используем Spring batch - дистанционное разделение на части для масштабирования процесса пакетной обработки. Думаете об использовании облачного потока данных, но хотели бы знать, могут ли динамически выделяться подчиненные устройства на основе нагрузки? мы развернуты в Google Cloud и, следовательно, хотим подумать об использовании поддержки потока данных Spring Cloud для kubernetes, если поток данных Cloud будет соответствовать нашим потребностям?

1 ответ

При использовании пакетных расширений Spring Cloud Task (особенно DeployerPartitionHandler), рабочие запускаются динамически по мере необходимости. Тот PartitionHandler позволяет настроить максимальное количество рабочих, а затем обрабатывать каждый раздел как независимый рабочий до этого максимума (обработка остальных разделов по мере того, как другие заканчивают работу). "Динамический" аспект действительно контролируется количеством разделов, возвращаемых Partitioner, Чем больше разделов возвращено, тем больше рабочих запущено.

Вы можете увидеть простой пример, настроенный для использования CloudFoundry в этом репо: https://github.com/mminella/S3JDBC Основное различие между ним и тем, что вам нужно, заключается в том, что вы должны поменять местами CloudFoundryTaskLauncher для KubernetesTaskLauncher и это соответствующая конфигурация.

Другие вопросы по тегам