2016-12-27 7 views
1

Мое приложение имеет очень высокую нагрузку на загрузку процессора, причина в том, что причал запускает много потоков для обработки запроса и может блокировать данные, когда данные готовы, много потоков становится управляемым , Я хочу, чтобы причал ожидал, пока все данные не прочитают, а затем начните поток, чтобы вызвать сервлет, в этом случае сервлет никогда не будет заблокирован.Как сделать бункер буфера всего тела запроса перед вызовом сервлета

Is is?

ответ

1

Невозможно.

Jetty нуждается в потоке, чтобы либо прочитать тело содержимого запроса (для таких вещей, как mime multitpart, параметры формы и т. Д.), Либо использовать этот поток для отправки в ваш webapp для вашего сервлета, чтобы прочитать тело содержимого запроса.

Тогда есть добавленная возможность ввода/вывода Async (введенная в Servlet 3.1), которая позволяет писать сервлет, который использует поток только в том случае, если он может читать или записывать в сокет, позволяя потоку вернуться к ThreadPool, если ничего не поделаешь.

+0

Я полагаю, что причал должен иметь возможность использовать один поток для обработки множества соединений с помощью NIO – Xilang

+0

. Если вы используете сервлеты, вы будете использовать Async I/O, у вас нет доступа к уровням NIO в Jetty. –

+0

да, я знаю, что я не могу этого сделать, только ядро ​​для приставок может иметь NIO. В любом случае, спасибо! – Xilang

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

  • Нет связанных вопросов^_^