Я думаю, что Spring Batch - хороший выбор для вашего случая использования по нескольким причинам:
- Вы можете использовать
FlatFileItemReader
и JmsItemWriter
"из коробки" (всравнение с написанием этого кода самостоятельно, если вы используете простую Java) - У вас будет несколько вариантов масштабирования (см. ниже)
- Модель обработки, ориентированная на куски, подходит для больших наборов данных, как в вашем случае.case
- и многие другие бесплатные функции (управление транзакциями, перезапуск и т. д.)
Физическое разбиение входного файла на несколько ресурсов и использование MultiResourcePartitioner
- действительно хороший вариант дляваш вариант использования.Однако это не единственный способ масштабирования шага, ориентированного на фрагмент, в Spring Batch. Вы также можете использовать:
Предыдущие 3 метода масштабирования реализованы в одной JVM.Существуют и другие варианты масштабирования пакетного задания между несколькими JVM, такие как удаленное разбиение на фрагменты и удаленное разбиение (но они не требуются для IMO для вашего случая использования).
Вы можете поговорить обо всех этих методах масштабирования с примерами кода.здесь: https://www.youtube.com/watch?v=J6IPlfm7N6w
Надеюсь, это поможет.