Comet

Alex Tutubalin lexa at lexa.ru
Fri Jun 15 16:24:49 MSD 2007


> 
> Вы не могли бы поподробнее объяснить, в чем проблема, и уточнить область
> применимости? Если б вы сразу сказали, что рассматриваете возможность
> передачи видео по кастомным протоколам, то тут естественно комет ни
> каким местом. По крайней мере, тот, который у буржуев описан.

Мы вообще начали с комета, а потом плавно перешли к мультиплексированию.
Хотя это сильно разные задачи, тот же комет не подразумевает раздачи
клиентам одного и того же.

Мультиплексор - штука крайне полезная (для узкого круга задач) и если
его иметь в хорошем общем виде, то будут и использовать. Другой вопрос,
что задач таких немного и пока не будет настоящей - не будет и соотв. модуля
в nginx.

> А для чатов, бирж, и живых лент новостей, особых проблем не вижу. По
> крайней мере, для чатов было названо несколько вариантов обхода узких
> мест.
Для чатов мгновенно выяснилось, что там поток данных к разным
юзерам таки неодинаковый. Приваты, комнаты и прочие особенности.

А дальше с чатами начинается интересно: 
 * мы либо держим на каждого клиента два потока (общий и приватный), но в 
  этом нет смысла (мы же хотим поэкономить соединения с backend),
 * либо приделываем в nginx механизм фильтрации записей по конфигу,
   динамически получаемому с backend (опять возникают записи и их 
   интерпретация на frontend)
 * либо опять имеем по потоку на клиента.
 * либо позволяем приватным сообщениям опаздывать и их подгружаем аяксом
   по таймеру (раз в 10 секунд, например). Тоже странно....

> прозрачно. И проблем с DDoS ни чуть не больше, чем при отдаче статики
> больших размеров. Принципиальной разницы, сидит ли 100 клиентов на 1
> мультиплексоре, или качают ли 100 клиентов 3 часа гигабайтный файл, я
> не вижу.
Принципиальная разница тут есть. Поток от backend потенциально имеет
бесконечную длину (в отличие от файла) и его нужно где-то хранить.
Если его хранить в памяти, то имеем возможность DOS, если его хранить
на диске, то нужно научиться у файла откусывать начало, либо же
хранить это в миллионе мелких файликов.


Алексей Тутубалин
mailto: lexa at lexa.ru
Web: http://www.lexa.ru/lexa 





More information about the nginx-ru mailing list