ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

платформа для REST сервисов


  • To: nginx-ru@xxxxxxxxx
  • Subject: платформа для REST сервисов
  • From: "Sergey Shepelev" <temotor@xxxxxxxxx>
  • Date: Wed, 31 Dec 2008 01:24:28 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type:content-transfer-encoding :content-disposition; bh=XNozD+aKTLSdt26AJjs+Y/09OnUD/aUTMx2UB6aLMuo=; b=pq+7vGmfTy/eZWksqRLTOVxeJewl0v8tROX386aTVwJ337aubM1T/sKTsOSaxvkyZL 6CS1IlyER0xDCCnerlikbYIp4McbUPC583dlttjTIwQ1Xqde01H91Rxe77moAEMUNdhw vCA8UWtmR/9TFpwHBWZR/GDrtsIjCOYvUsskw=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition; b=SsGeltY3Mr/HKAESgwUV7a9FDsY8OA/LDhjkZK9TDf3TM43XTJoOPtI68k5/JAYVfA wrhdhsqxEK/2kiGBggyj9xYDOa9+OLIvd2D8vbkozzHjPZHb819k0gO62UWgtvh3KkFe sdRFrVbl+wQlmdzAz8rzlamkc11z88cFGarsU=

Добрый новый год.

Почитал тред про CGI в nginx, утром обсуждали смежную задачку с колегом.
Только у меня идея была написать всю асинхронщину на питоне, а в
реальной жизни мы используем nginx + fastcgi на питоне.

И в общем идея примерно такая.
Есть некий слой "А" асинхронной обработки запросов снаружи (повторюсь,
сейчас его роль офигительно выполняет nginx).
"А" знает, что в его распоряжении имеется, скажем 100 бекендов - 100
процессов. Думаю, оптимальное количество можно определить для
конкретной материнки и проца. (RFC)
Приходит внешний запрос от клиента. "А" здесь быстро принимает запрос
и ищет свободный воркер
если есть свободный воркер, (RFC)
   помечает его как занятый
   асинхронно шлёт запрос ему,
(и продолжает работать дальше)
если нет свободного воркера
    ждем таймаут, если в течение таймаута свободного воркера не
появилось - возвращаем клиенту "таймаут" (RFC, кажется, nginx именно
так и умеет)
когда воркер вернул результат
    отдаём клиенту,
    помечаем воркер как свободный.

К этому счастью нужно прикрутить админку бекендов с графиками и
полуавтоматическим контроллером пула воркеров, то есть чтоб некий
третий процесс контроллировал сколько нужно прибить лишних воркеров,
сколько нужно открыть новых (RFC).

Получится наверно что-то вроде веб-части Google AppEngine.


 




Copyright © Lexa Software, 1996-2009.