Welcome! Log In Create A New Profile

Advanced

Более 250 одновременных запросов в FastCGI коннекции

January 01, 2011 09:15AM
Всех с наступившим!

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

Надо написать приложение, обрабатывающее HTTP-запросы на получение данных по ключу, интенсивность до 250 запросов в секунду, в каждом запросе одно значение. А данные хранятся в базе, и для базы оптимально использовать групповой запрос на получение данных сразу для всей очереди пришедших запросов. Запрос типа select * from TABLE where key in (k1, k2, k3, ...);

Хочется организовать работу приложения в одном потоке примерно с таким алгоритмом работы:
[list=1]
[*] Выгрести всю очередь пришедших на данный момент HTTP-запросов
[*] Сделать групповой запрос в БД
[*] На каждый HTTP послать свой ответ
[/list]
Пока выполняется запрос к базе, копится очередь вновь пришедших запросов. Подходит ли FastCGI для реализации такого алгоритма работы?

И второй вопрос про API. Существует ли надежный API для асинхронной обработки FastCGI запросов? В стандартном API вызов FCGX_Accept_r заточен под multi-thread, вызов в потоке блокируется до получения запроса, и нельзя узнать есть ли еще запросы в коннекции. А нужно что-то роде неблокируемого Accept, чтобы в одном потоке можно было выбрать всю очередь запросов по HTTP, выполнить запрос к базе и вернуть ответ по всем HTTP.
Subject Author Posted

Более 250 одновременных запросов в FastCGI коннекции

inistate January 01, 2011 09:15AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 145
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