Подтвердить что ты не робот

Как пристань обрабатывает несколько запросов

Я работаю с веб-приложениями spring, используя сервер приложений Jetty/Tomcat уже около двух лет, однако то, что ускользает от меня, заключается в том, как несколько запросов обрабатываются на этих серверах. Я понимаю, что spring помогает в создании синглетов, но мое понимание просто ограничено этим. Может ли кто-нибудь указать на любой хороший ресурс, который может помочь мне понять, как обрабатываются несколько запросов.

4b9b3361

Ответ 1

На этот вопрос можно ответить на столько уровней, что я смотрел на него в течение двух дней, пытаясь понять, как ответить на него... так что я возьму на него какой-то высокий уровень.

Имеется этот серверный порт, который прислушивается к причалу, и некоторое количество потоков-акцепторов, задачей которых является получение объектов соединения между клиентом и сервером. Как только у вас есть это соединение, он протекает через архитектуру обработчика причалов, выполняя такие действия, как аутентификация, или вытаскивая идентификатор сеанса и прикрепляя объект сеанса к запросу. Затем он прокладывает себе путь в обработчик сервлетов, и соответствующий сервлет найден, и вы начинаете работать с servlet-api. В этот момент у вас есть поток, выделенный для вашего запроса за все время, которое вы находитесь в servlet-api, по крайней мере, под сервлетом 2.5. В сервлет 3.0 у вас есть некоторые механизмы асинхронизации, доступные вам, или вы можете использовать продолжения причала как способ получить поддержку async на сервлет 2.5 api.

Во всяком случае, существует пул потоков, который сервер использует для распределения потоков для этих коннекторов, которые в конечном счете являются потоками, которые все время тратят на сервлет-api. Продолжение приемов апи и новая поддержка сервлета 3.0 обеспечивают механизмы для возврата потоков обратно в основной поток, чтобы они могли тратить время на прием и обработку других запросов.

Очевидно, что многое происходит в рамках покрытия, связанного с использованием nio api, и как причал эффективно управляет всем этим материалом, но, возможно, этого достаточно, чтобы удовлетворить ваш первоначальный вопрос. Если нет, не стесняйтесь просматривать документы причала (http://www.eclipse.org/jetty/documentation/current) или искать списки рассылки причала. Была обсуждена оптимизация причала-9, так как она относится к обложкам с обработкой и обработкой соединений http, spdy и websocket в блогах в Webtide (http://webtide.com/blogs).