Пакетная обработка на Кубернетес - PullRequest
0 голосов
/ 30 марта 2020

Кто-нибудь здесь имеет опыт обработки партии (например, пружинная партия) на kubernetes? Это хорошая идея? Как предотвратить пакетную обработку одних и тех же данных, если мы используем функцию автоматического масштабирования kubernetes? Спасибо.

1 Ответ

1 голос
/ 30 марта 2020

Кто-нибудь здесь имеет опыт обработки партии (например, пружинная партия) на кубернетах? Это хорошая идея?

Для Spring Batch у нас (у команды Spring Batch) есть некоторый опыт по этому вопросу, которым мы делимся в следующих выступлениях:

Выполнение пакетных заданий в kubernetes может быть хитрым:

  • блоки могут быть перепланированы k8s на разных узлах в середине обработки
  • задачи хрон могут запускаться дважды
  • et c

Это требует дополнительной нетривиальной работы на стороне разработчика, чтобы убедиться, что пакетное приложение отказоустойчиво (устойчиво к сбоям узла, перепланированию модуля и т. Д. * 1057). *) и безопасен для выполнения дублирующихся заданий в кластерной среде.

Spring Batch позаботится об этой дополнительной работе для вас и может быть хорошим выбором для запуска пакетных рабочих нагрузок на k8s по нескольким причинам:

  • Стоимость эфф цитата: Задания Spring Batch поддерживают свое состояние во внешней базе данных, что позволяет перезапустить их с последней точки сохранения в случае сбоя задания / узла или повторного планирования модуля
  • Надежность: Безопасный от дублирования выполнения работ благодаря централизованному хранилищу заданий
  • Отказоустойчивость: Повторить / Пропустить неудачные элементы в случае временных ошибок, таких как вызов к веб-службе, которая может быть временно отключена или перепланирована в облачной среде

Как предотвратить пакетную обработку одних и тех же данных, если мы используем функцию автоматического масштабирования kubernetes?

Создание для каждого задания отдельного набора данных - это путь к go (например, задание на файл). Но есть различные шаблоны, которые могут вас заинтересовать, см. Шаблоны заданий из документации k8s.

...