Преимущества весенней партии

Я понял, что весна-пакетная структура обрабатывает данные в кусках. Тем не менее, я думал, что, когда одна и та же функция chunking может быть достигнута через java, почему нам нужно перейти на пакетную структуру.

Может кто-нибудь, пожалуйста, дайте мне знать, есть ли еще основания для весеннего пакетного рациона?

Ответ 1

Позвольте мне немного перефразировать ваш вопрос и посмотреть, справляется ли это с этим вопросом.

Что предлагает Spring Batch, что я должен был бы обрабатывать сам при создании пакетного приложения?

Spring Batch послужил основой для JSR-352 (спецификация java-партии), и поскольку эта спецификация вышла, в java-пространстве теперь доступно множество патчей Spring. Это, как говорится, все еще очень много, что Spring Batch обеспечивает вне рамки того, что делает базовая Java:

В рамках "базового" пакетного задания

В рамках простого пакетного задания Spring Batch предоставляет набор утилит и реализаций, которые были протестированы на сражениях во всех вертикалях предприятия. Вот некоторые примеры:

  • Более 17 ItemReader и 15 ItemWriter охватывающих широкие возможности ввода и вывода (File, JDBC, NoSQL, JMS и т.д.). Все они предоставляют декларативные параметры ввода-вывода, так что вам не нужно писать и проверять код для читателей и писателей с учетом состояния.
  • Коллекция реализаций Tasklet (Spring Batch, эквивалентная Batchlet - Batchlet JSR-352), в том числе для выполнения команд оболочки и взаимодействия с Hadoop.
  • Возможность останавливать/запускать/перезапускать задания и поддерживать состояние между исполнением.
  • Возможность пропускать и повторять записи по мере их обработки.
  • Управление транзакциями. Spring Batch обрабатывает транзакции для вас.
  • Возможность уведомления других систем при возникновении ошибок посредством обмена сообщениями путем интеграции Spring Integration.
  • Конфигурация на основе Java или XML.
  • Все функции Spring, такие как DI, AOP, тестируемость и т.д.
  • Независимость поставщика. Используя Spring Batch, вы можете использовать фреймворк, который с открытым исходным кодом и не привязан к какому-либо одному поставщику.

Дополнительные преимущества

Помимо приведенных выше примеров того, что Spring Batch приводит к таблице, она идет гораздо дальше:

  • Возможности масштабирования - Spring Batch предоставляет ряд возможностей масштабирования, которые варьируются от одной JVM через потоки (многопоточный шаг, локальное разбиение на разделы и разбиения) до масштабируемости multi-JVM (удаленное разбиение на разделы и удаленное разбиение).
  • Интеграция с интеграцией Spring - Spring Integration предоставляет ряд полезных элементов, которые позволяют создавать надежные пакетные приложения для обработки таких вещей, как сообщения об ошибках, каталоги для файлов для файлов, автоматически FTP файлы и т.д.
  • Большая поддержка данных. Благодаря проекту Spring для Apache Hadoop существует ряд расширений к Spring Batch, которые позволяют ему хорошо работать с Hadoop. Вы можете запускать задания Spring Batch в YARN, вы можете выполнять задания Pig, Hive, MapReduce и т.д.
  • Интеграция с Spring XD - Spring XD обеспечивает распределенное время выполнения для развертывания, управления и выполнения пакетных заданий.

Я лично рассматриваю пакетную обработку как модель программирования "set it and forget it". Хотя это не сексуально, пакетная обработка является очень полезной моделью обработки и более полезна в местах, чем большинство людей понимает. Spring Batch обеспечивает среду, которая позволяет как можно проще разрабатывать надежные пакетные задания.