2009-10-02 1 views
1

Я работаю с большим веб-приложением Java, которое использует службу для возврата информации. Моя ключевая цель - как можно быстрее получить более 100 индивидуальных результатов. Мы заметили, что отправка 100+ запросов на получение информации не дает нам максимальной производительности при ответах на данные. Наше решение состояло в том, чтобы разбить 100 запросов на небольшие партии (~ 15,25) и собрать их, как только они были получены.Отправка большого запроса на услугу небольшими партиями (Java)

Я ищу предложение на Java, чтобы сделать 1 или 50 или 200 запросов от приложения, к службе, вернуть информацию в приложение и выполнить другую партию, если есть больше запросов. Если никаких запросов не осталось, соберите их в списке и верните этот полный список.

Любые предложения по форме приветствуются, спасибо.

ответ

1

Я использую Spring Integration для такого рода вещей. Вы можете настроить настраиваемый разделитель сообщений, который отбивает ваш запрос и отправляет множество мелких, а также агрегатор сообщений, который знает, когда он получил все ответы, и затем может вернуть вам один результат.

Весна также имеет продукт под названием Spring Batch, который может быть полезной альтернативой, но это больше для интенсивной пакетной обработки, которая не звучит так, как будто вы делаете.

0

Если возможно/возможно, расширьте/service для поддержки нескольких логических запросов в одном запросе протокола; например HTTP-запрос.

Теоретически, как сторона клиента, так и серверная сторона должны иметь возможность выполнять работу с меньшими накладными расходами, если серверная сторона получает один запрос. Должна быть экономия как на стороне клиента, так и на стороне сервера.

Смежные вопросы