Чтение больших файлов и отправка в очередь jms с использованием Spring Batch - PullRequest
0 голосов
/ 01 января 2019

У меня есть сценарий, чтобы прочитать огромный файл и отправить записи в очередь jms для дальнейшей обработки.Файл может иметь формат CSV / FIX .Я планирую использовать Spring Batch для достижения того же.Я прочитал о MultiResourcePartitioner для чтения большого файла, когда мы используем пружинная партия .

Является ли хорошей идеей использовать пружинную партию в этом сценарии?Или я должен использовать простой Java-код для чтения огромного файла?Или есть какой-то другой лучший подход для этого сценария?

1 Ответ

0 голосов
/ 02 января 2019

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

  • Вы можете использовать FlatFileItemReader и JmsItemWriter "из коробки" (всравнение с написанием этого кода самостоятельно, если вы используете простую Java)
  • У вас будет несколько вариантов масштабирования (см. ниже)
  • Модель обработки, ориентированная на куски, подходит для больших наборов данных, как в вашем случае.case
  • и многие другие бесплатные функции (управление транзакциями, перезапуск и т. д.)

Физическое разбиение входного файла на несколько ресурсов и использование MultiResourcePartitioner - действительно хороший вариант дляваш вариант использования.Однако это не единственный способ масштабирования шага, ориентированного на фрагмент, в Spring Batch. Вы также можете использовать:

Предыдущие 3 метода масштабирования реализованы в одной JVM.Существуют и другие варианты масштабирования пакетного задания между несколькими JVM, такие как удаленное разбиение на фрагменты и удаленное разбиение (но они не требуются для IMO для вашего случая использования).

Вы можете поговорить обо всех этих методах масштабирования с примерами кода.здесь: https://www.youtube.com/watch?v=J6IPlfm7N6w

Надеюсь, это поможет.

...