Spring Batch: дистанционное разбиение на блоки и разбиение без использования jms
Я новичок в весенней партии. Я хочу запускать весенние пакетные задания с использованием техники удаленного разделения и разделения на несколько серверов без использования jms. Я хочу использовать HTTP Invoker или RMI вместо использования JMS. Но, Все примеры удаленного разбиения на блоки и разбиения используют jms. Я не могу найти примеры, которые используют HTTP Invoker или RMI. Интересно, возможно ли это?
Английский не мой родной язык.. прошу прощения за любые ошибки с моей стороны
1 ответ
Вы можете использовать любую форму связи для удаленного разбиения. Однако для удаленного разбиения на блоки требуется постоянное взаимодействие, поэтому обычно используется JMS.
Причина, по которой вы видите JMS для удаленного разделения, заключается в том, что легче настроить кластерную среду с JMS, чем для HTTP. Причиной этого является то, что все (ведущий и все подчиненные) должны знать только, где находится очередь для разговора. Использование HTTP в качестве механизма связи требует, чтобы ведущий и ведомые знали намного больше. Ведущий должен знать, как равномерно распределить разделы по всем ведомым и куда отправлять запросы для каждого ведомого. Все рабы также должны знать, где хозяин. Модель централизованного распределения JMS также позволяет динамически добавлять новых ведомых устройств во время обработки, где HTTP требует, чтобы у вас был какой-то способ регистрации нового ведомого устройства с ведущим устройством.
Причина того, что для удаленного разбиения на блоки требуется постоянная связь, заключается в том, что в модели удаленного раздела нет ничего, что препятствовало бы двойной обработке элемента, поскольку он отправляется по проводам (удаленное разбиение просто отправляет описания данных через, а хранилище заданий предотвращает передачу данных обрабатывается дважды).
Вы можете прочитать больше о разнице между ними в моем ответе здесь: Разница между удаленным разделением на части и удаленным разделением