Re: Хочется странного (синхронно/асинхронные запросы)
Илья Винокуров
ilvin на mail.ru
Ср Апр 25 10:12:30 UTC 2012
Здравствуйте, Андрей!
Вам хочется не конвертера, а работы FastCGI протокола в multiplex connections режиме.
Какая схема:
1) Много внешних клиентов открывают соединения с nginx
2) nginx открывает с FastCGI бекендом ограниченное количество FastCGI соединений в multiplex connections режиме
3) nginx мультиплексирует запросы от большого количества внешних клиентов через ограниченное число FastCGI соединений.
4) FastCGI бекенд мультиплексирует ответы через ограниченное число FastCGI соединений.
5) nginx отдает ответы внешним клиентам.
На сколько я понял, nginx не поддерживает multiplex connections режим FastCGI протокола, но движется в этом направлении: поддерживается keep-alive для FastCGI.
PS: multiplex connections режим должен уметь еще и бекенд, но это уже другая история.
С почтением,
Илья Винокуров.
Wed, 25 Apr 2012 10:13:33 +0400 от Andrey Velikoredchanin <uncleandyv at gmail.com>:
Всем привет!
Появилась необходимость в конверторе синхронных HTTP запросов в асинхронные. По идее, задача как раз для nginx, поэтому сюда и пишу.
Работать должно примерно так:
1. На определенный урл поступает HTTP запрос;
2. Конвертер сохраняет запрос вместе с его сокетом в буфер с определенным идентификатором;
3. Запрос с присоединенным идентификатором передается в модуль асинхронной обработки (обычный fastcgi который регистрирует запрос в очереди на обработку и закрывает коннект);
4. По окончанию обработки, модуль асинхронной обработки отправляет на второй определенный урл (урл конвертера) через HTTP запрос идентификатор запроса из п.2 и результатирующий ответ на первый запрос;
5. Конвертер извлекает из буфера ждущих соединений нужный сокет и отдает в него результатирующий ответ.
Необходимость проистекает из-за высокой нагрузки и многообразия алгоритмов обработки запросов.
Может быть, если не nginx, то есть какие-то другие решения?
Спасибо.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20120425/9cf735dd/attachment.html>
Подробная информация о списке рассылки nginx-ru