Welcome! Log In Create A New Profile

Advanced

Re: Хочется странного (синхронно/асинхронные запросы)

Alexandre Snarskii
April 25, 2012 06:40AM
On Wed, Apr 25, 2012 at 10:13:33AM +0400, Andrey Velikoredchanin wrote:
> Всем привет!
>
> Появилась необходимость в конверторе синхронных HTTP запросов в асинхронные. По
> идее, задача как раз для nginx, поэтому сюда и пишу.
>
> Работать должно примерно так:
>
> 1. На определенный урл поступает HTTP запрос;
> 2. Конвертер сохраняет запрос вместе с его сокетом в буфер с определенным
> идентификатором;
> 3. Запрос с присоединенным идентификатором передается в модуль асинхронной
> обработки (обычный fastcgi который регистрирует запрос в очереди на обработку и
> закрывает коннект);
> 4. По окончанию обработки, модуль асинхронной обработки отправляет на второй
> определенный урл (урл конвертера) через HTTP запрос идентификатор запроса из
> п.2 и результатирующий ответ на первый запрос;
> 5. Конвертер извлекает из буфера ждущих соединений нужный сокет и отдает в него
> результатирующий ответ.
>
> Необходимость проистекает из-за высокой нагрузки и многообразия алгоритмов
> обработки запросов.
>
> Может быть, если не nginx, то есть какие-то другие решения?

Я не уверен, что хорошо понял задачу, но я бы посмотрел в сторону
https://github.com/calio/beanstalkd-nginx-module
в примерно следующем сценарии:

Начальный запрос поступает на простой fastcgi который делает необходимую
предобработку и формирование таски в beanstalk'е (в частности, с указанием
уникальной "очереди ответа"), после чего возвращает "управление" в nginx
с помощью X-Accel-Redirect на спец. location, который и ждет появления
ответа в этой самой уникальной очереди. А уж кто и как обрабатывает
задачи из очередей beanstalk'а - совершенно отдельный вопрос.

PS: не факт, что оно заработает, никогда не тестировал. В частности,
совершенно не уверен, что модуль работы с beanstalk'ом умеет ожидать
ответов по нескольким очередям "в одном соединении".

--
In theory, there is no difference between theory and practice.
But, in practice, there is.

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Хочется странного (синхронно/асинхронные запросы)

Andrey Velikoredchanin April 25, 2012 02:16AM

Re: Хочется странного (синхронно/асинхронные запросы)

Андрей Василишин April 25, 2012 03:46AM

Re: Хочется странного (синхронно/асинхронные запросы)

Andrey Velikoredchanin April 25, 2012 04:00AM

Re: Хочется странного (синхронно/асинхронные запросы)

Александр Лозовюк April 25, 2012 04:16AM

Re: Хочется странного (синхронно/асинхронные запросы)

alexbyk April 25, 2012 05:18AM

Re: Хочется странного (синхронно/асинхронные запросы)

Andrey Velikoredchanin April 25, 2012 05:56AM

Re: Хочется странного (синхронно/асинхронные запросы)

alexbyk April 25, 2012 06:22AM

Re: Хочется странного ( синхронно/асинхронные запросы)

Валентин Бартенев April 25, 2012 06:28AM

Re: Хочется странного (синхронно/асинхронные запросы)

Илья Винокуров April 25, 2012 06:14AM

Re: Хочется странного (синхронно/асинхронные запросы)

Alexandre Snarskii April 25, 2012 06:40AM

Re: Хочется странного (синхронно/асинхронные запросы)

Andrey Velikoredchanin April 25, 2012 07:14AM

Re: Хочется странного (синхронно/асинхронные запросы)

Alexandre Snarskii April 25, 2012 07:50AM

Re: Хочется странного (синхронно/асинхронные запросы)

Andrey Velikoredchanin April 25, 2012 07:56AM

Re[2]: Хочется странного (синхронно/асинхронные запросы)

Влад Максимов April 25, 2012 06:56AM

Re: Re[2]: Хочется странного (синхронно/асинхронные запросы)

Andrey Velikoredchanin April 25, 2012 07:18AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 127
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready