2016-02-19 3 views
4

Мы оцениваем структуру Spring Batch для замены нашей домашней пакетной структуры в нашей организации, и мы должны иметь возможность развертывать пакет в Pivotal Cloud Foundry (PCF). В связи с этим, вы можете сообщить нам свои мысли на следующей проблеме:Spring Batch and Pival Cloud Foundry

  • Допустим, если мы используем Remote стратегию разбиения для обработки большого объема записей, может пакетное задание автоматического масштаба подчиненных узлов в облаке основе от количества процессов пакетной работы? Или мы должны масштабировать соответствующее количество ведомых узлов и сохранять их на месте до того, как стартовое задание начнется?
  • Какая настройка параметров «размер сетки» в приведенном выше сценарии?

ответ

7

У вас есть несколько вопросов здесь. Однако, прежде чем попасть в них, позвольте мне занять минуту и ​​пройти через то, где пакетная обработка находится на PCF прямо сейчас, а затем перейдите на ваши вопросы.

Текущее состояние CF

По PCF 1,6, Диего (динамическая среда в CF) при условии, новые примитив называемых задач. Традиционно все приложения, работающие на CF, как ожидается, будут длительными процессами. Из-за этого, чтобы запустить пакетное задание на CF, вам нужно будет упаковать его как длительный процесс (обычно это веб-приложение), а затем развернуть его. Если вы хотите использовать удаленное разбиение на разделы, вам нужно будет развернуть и масштабировать ведомые устройства по вашему усмотрению, но все они были внешними по отношению к CF. С помощью Заданий Diego теперь поддерживает недолговечные процессы ... aka процессы, которые не будут перезапущены после их завершения. Это означает, что вы можете запускать пакетное задание как флэш-накопитель Spring Boot и после его завершения, CF не будет пытаться перезапустить его (это хорошо). Проблема с 1.6 заключается в том, что API, отображающий задачи, недоступен, поэтому это была только внутренняя конструкция.

С помощью PCF 1.7 выдается новый API для раскрытия задач общего назначения. Как часть API v3, вы сможете развернуть свои собственные приложения в качестве Задачи. Это позволяет запускать пакетное задание как задачу, зная, что он будет выполняться, а затем очиститься с помощью PCF. Имея это в виду ...

Может ли шкала заданий автоматически масштабироваться Ведомые узлы в облаке на основе количества процессов пакетной обработки?

При использовании возможностей разделения Spring Batch существует два ключевых компонента. Partitioner и PartitionHandler. Partitioner отвечает за понимание данных и их разделение. PartitionHandler отвечает за понимание ткани, в которой распределяются разделы на ведомые устройства.

Для потока данных Spring Cloud мы планируем создать реализацию PartitionHandler, которая позволит пользователям выполнять подчиненные разделы как задачи на CF. По сути, мы ожидаем, что PartitionHandler запустит подчиненные устройства в качестве задач, и как только они будут завершены, они будут очищены.

Этот подход позволяет динамически запускать количество ведомых устройств в зависимости от количества разделов (настраиваемых до максимального).

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

Какая настройка параметров «размер сетки» в приведенном выше сценарии?

Параметр размера сетки действительно используется Partitioner, а не PartitionHandler и предназначен для того, чтобы быть подсказкой о том, сколько работников может быть. В этом случае он может использоваться для настройки количества разделов, которые вы хотите создать, но это действительно зависит от реализации Partitioner.

Заключение

Это описание того, как партия рабочего процесса на CF будет выглядеть. Важно отметить, что CF 1.7 отсутствует в написании этого ответа. Планируется, что он будет выпущен Q1 2016 года, и в то время эта функция будет следовать вскоре после этого.

Смежные вопросы