Распределенная пакетная обработка с использованием Spring Batch и AMQP
-
21-12-2019 - |
Вопрос
Я хочу распределить обработку больших партий.Идея состоит в том, чтобы с помощью Spring Batch запускать группу потребителей AMQP в облаке, а затем загружать дешевые задачи (например, идентификаторы элементов) и отправлять их на AMQP exchange.Написание результатов будет осуществляться самими потребителями.
Существует ли готовая библиотека для достижения этой цели?
Несколько мыслей:
- Весенняя партия полностью обсуждается.
- Размер партии составляет несколько миллионов.Я не хочу уничтожать свой брокер сообщений, отправляя грубой силой все эти идентификаторы сразу, но вместо этого использую какое-то регулирование.
- Я действительно хочу знать о том, какие элементы были обработаны, чтобы я мог следить за процессом.Таким образом, процесс контроля партии должен будет получать ответы от потребителей.
Решение
Да, посмотрите на весенняя пакетная интеграция проект.Он сочетает в себе Spring Batch и Spring Integration для выполнения того, что вы хотите.
Для пакета 2.2.x это часть spring-batch-admin
распределение;в предстоящем выпуске batch 3.0.0 он был перенесен в собственно batch.
Удаленное разбиение на разделы просто отправляет метаданные о разделах, и рабочие фактически извлекают эти данные.
Он поставляется с Пример JMS но было бы нетрудно заменить шлюзы JMS с весенней интеграцией на шлюзы amqp с весенней интеграцией.
Существует также версия удаленного фрагментирования, в которой данные передаются по транспорту вместо метаданных раздела.