Как веб-сервер основного потока реализует эту функцию? - PullRequest
3 голосов
/ 16 июня 2011

Это означает, например, что модуль может начать сжатие ответа от бэкэнд-сервер и поток его на клиент до получения модуля весь ответ от бэкэнда. Nice! * * 1002

Я знаю, что это какой-то асинхронный ввод-вывод, но простого такого недостаточно.

Кто-нибудь знает?

Ответы [ 2 ]

1 голос
/ 16 июня 2011

Не глядя на исходный код реальной реализации, я размышляю здесь:

Скорее всего, это какой-то поток (абстрактный буферизованный ввод-вывод), который передается из одного модуля в другой («цепочка»). Один модуль (возможно, контейнер сервлетов) записывает в поток, который читается другим модулем (модуль сжатия в вашем примере), который затем записывает свои выходные данные в другой поток. Содержимое этого потока может затем обрабатываться или передаваться клиенту.

0 голосов
/ 16 июня 2011

Бэкэнду, возможно, придется подождать ввода-вывода, прежде чем он сможет полностью создать страницу.Модули могут начать сжимать начало сообщения до того, как бэкэнд полностью завершит его написание.

Чтобы понять, почему это полезно, вам необходимо понять структуру ngnix.ngninx - это сервер, который использует неблокирующий ввод и вывод .Обычно сервер использует блокировку ввода и вывода: он будет прослушивать соединение, а когда соединение будет найдено, он будет обрабатывать страницу.Чтобы увеличить пропускную способность, создаются несколько потоков, называемых «работниками».

Сравните это с ngnix: он постоянно спрашивает ядро: "Готов ли какой-нибудь из моих запросов ввода-вывода?"Это позволяет обрабатывать одинаковое количество страниц с 1) меньшими издержками от всех различных процессов и 2) меньшим использованием памяти.Однако у этого есть некоторые недостатки.Для приложений с очень низким объемом, ngnix может использовать больше ЦП, чем блокирующий сервер.Во-вторых, он гораздо менее портативен.В Windows используется совершенно другая модель для неблокирующего ввода-вывода.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...