Весенний пакет JobRepository расположение и масштабирование - PullRequest
0 голосов
/ 17 декабря 2018

Из этой статьи мы можем узнать, что Spring-Batch содержит статус задания в некотором репозитории SQL.

А из этой статьи мы можем узнать, что местоположениеJobRepository может быть настроен - может быть в памяти и может быть удаленной БД.

Так что, если нам нужно масштабировать пакетное задание, следует ли запустить несколько различных Spring-пакетныхJAR s, все настроены на использование одной и той же общей БД для их синхронизации?

Это правильный шаблон / архитектура?

1 Ответ

0 голосов
/ 17 декабря 2018

Да, это путь.Проблема, которая может возникнуть при запуске одного и того же задания с разных физических узлов, заключается в том, что вы можете создать один и тот же экземпляр задания дважды.В этом случае Spring Batch не будет знать, какой экземпляр выбрать при перезапуске неудачного выполнения.Общий репозиторий заданий выступает в качестве средства защиты от подобных проблем параллелизма.

Репозиторий заданий выполняет эту синхронизацию благодаря транзакционным возможностям базовой базы данных.IsolationLevelForCreate может быть установлен на агрессивное значение (SERIALIZABLE по умолчанию), чтобы избежать вышеупомянутой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...