[Moscow.pm] Moscow.pm party: доклад-реквесты
Mons Anderson
mons на cpan.org
Пт Ноя 22 03:01:00 PST 2013
On 22.11.2013, at 7:28, ksvs <ksvs1996 на ymail.com> wrote:
> Привет.
>
> Mons, а расскажите лучше тут об области применения AnyEvent-HTTP-Server-II.
Ко мне можно на ты)
>
> Отдавать web множеству медленных клиентов? Нет, для этого впереди ставят nginx.
>
> Держать множество открытых соединений. А для чего? Для информирования клиента о каком-то событии? Но ведь этого есть специализированные решения, которые быстрей perl. На перле закинул ему сообщение, а он уже дальше клиенту передаст.
>
> Другое ничего в голову не приходит, а жутко интересно!
В принципе всё очень просто: для того, чтобы иметь полную власть над обработкой http-запросов в асинхронном режиме.
Возьмем простой пример: простая json апишка с походом в N внешних источников.
в случае обычной синхронной модели (будь то апач, fastcgi или psgi) запросы выполняются последовательно в отдельном процессе.
соовтетственно:
Минимальное время ответа = sum(response times)
Максимальное кол-во одновременно обрабатываемых запросов = max(processes)
processes > CPUcores -> load average > 1
если процесс асинхронный:
Минимальное время ответа = max(response times) # в идеальном случае, когда все можно запараллелить
Максимальное кол-во одновременно обрабатываемых запросов = столько, на сколько хватит cpu. например 10000 - не проблема
load average < 1, т.к. количество процессов < CPU cores. следовательно четкое планирование ресурсов, отсутствие оверхеда от планировщика системы.
Что конкретно у нас решается с его помощью:
- Различные API. AE::HTTP::Server -> ( DB(tarantool, sql) | other api) -> json
- Streaming zip. AE::HTTP::Server -> AE::http_request -> IO::Compress -> chunked reply
>
> P.S.
> Пока не посмотрел видео с вашим докладом, думал, что Mons - это такой бородатый дядька, - ведь в рассылке так и говорят, что Mons мега-гуру, который 1000 лет на перле пишет!
>
Ну, бороду я периодически сбриваю )
И на перле я пишу в 70 раз меньшее время )
Подробная информация о списке рассылки Moscow-pm