В настоящее время я использую Джерси 1.0 и собираюсь перейти на 2.0. Для отдыха просит может длиться в течение секунды или два я использую следующий шаблон:Джерси и AsyncResponse против перенаправления
- Клиентские вызовы GET или PUT
- сервер возвращает URL опроса для клиента
- КЛИЕНТ опрашивает URL, пока не получит перенаправление на завершенный ресурс
Довольно стандартный и простой. Тем не менее, я заметил, что у Джерси 2.0 есть функция AsyncResponse. Но похоже, что это делается без изменений на проводе. Другими словами, клиент по-прежнему блокирует результат, пока сервер выполняет асинхронную обработку запроса.
Так что хорошего в этом? Должен ли я использовать его вместо текущего асинхронного подхода для вызовов> 1 секунда? Или на самом деле просто поддерживать соединения, освобожденные на сервере, для вызовов, которые будут всего лишь несколько сотен миллисекунд?
Я хочу, чтобы мой сервер был максимально масштабируемым, но подход, который я использую сейчас, может быть утомительным для клиента. AsyncResponse кажется супер простым, но я не уверен, как это работает для чего-то вроде сервиса heroku, где вы хотите очень короткое время соединения.
Правильно, так что я предполагаю, что резюме, приостановление и т. Д. AsyncResponse не будут работать с несколькими серверами без состояния? IOW, вы не можете приостановить работу на одном веб-динодере и возобновить работу с другим. –
Я бы не подумал, что клиентский запрос и соединение все еще находятся на одном и том же сервере. – TheArchitect