Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> multiplexor vs fastcgi 
V
    Опции темы
frenkys
Дата 11.11.2009, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 18.6.2005

Репутация: нет
Всего: 1



Помогите понять в чем преимущество мультиплексора dklab_multiplexor перед обычным fast_cgi который висит в памяти.
Все равно ведь на клиенте мы через javascript посылаем запрос толи к мультиплексору толи к фаст цги демону.
Я не могу понять в чем выигрышь.

--------------------
 niva[frenky]
PM MAIL WWW   Вверх
ginnie
Дата 11.11.2009, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



frenkys, dklab верно сообщает, что поддержание соединения с сервером для получения новых данных более эффективно, чем его периодический опрос. dklab_multiplexor используется для обработки большого количества таких соединений. Посчитайте, сколько потребуется памяти для обработки такого количества соединений при помощи fast_cgi и поймете, в чем выигрыш.

P.S. еще обращаю внимание, что miltiplexor используется только для отдачи данных клиентам, запросы клиентов должны идти в обход miltiplexor'а.

Это сообщение отредактировал(а) ginnie - 11.11.2009, 15:49


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
frenkys
Дата 11.11.2009, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 18.6.2005

Репутация: нет
Всего: 1



Цитата(ginnie @ 11.11.2009,  15:42)
P.S. еще обращаю внимание, что miltiplexor используется только для отдачи данных клиентам, запросы клиентов должны идти в обход miltiplexor'а.

Ну ведь постоянный коннект :
На стороне клиента  через JS это и есть опрос по таймауту.



Мультиплексор же знает кому что отдавать значит он как минимум принимает параметр id 




Тоесть получаеться вся разница в архитектуре fast_cgi - изза  того что он не libevent ?

Добавлено через 4 минуты и 29 секунд
Вот например я проверяю количество новых сообщений которое пришло пользователю с помощью js раз в 1 минуту   (джс обращаеться к демону и берет из мемкеша данные)
использование мультиплексора для этих целей даст выигрышь?

Смотрю гмаил -там количество сообщений тоже проверяется раз 100ms



--------------------
 niva[frenky]
PM MAIL WWW   Вверх
ginnie
Дата 11.11.2009, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



frenkys, алгоритм работы такой: устанавливаем с сервером соединение для получения данных (информации о письмах) и не разрываем его. Если на сервер пришло письмо, то в установленном соединении клиенту приходят новые данные, которые он обрабатывает. Соединение не разрывается. Пришло еще одно письмо, и данные снова передаются клиенту. Никакие данные от клиента в этом соединении на сервер не передаются. Если надо что-то передать, делается отдельное обычное (недолгоживущее) соединение.
Такой алгоритм работы удобен в основном для чатов.

P.S. libevent - всего лишь библиотека, реализующая событийную машину (я лично обычно использую libev) и никак не связана с обсуждаемым вопросом (т.к. событийная машина используется также и в fast_cgi).

Это сообщение отредактировал(а) ginnie - 11.11.2009, 16:13


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
frenkys
Дата 11.11.2009, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 18.6.2005

Репутация: нет
Всего: 1



Спасибки, до меня начинает по-тихонечку доходить =)
--------------------
 niva[frenky]
PM MAIL WWW   Вверх
gcc
Дата 11.11.2009, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



ginnie, а чем mod_perl не подойдет?

я где-то видел что подобное как event встроенное в апаче, т.е. если будет много соединений, то очень много памяти жраться не будет только из-за соединения...

еще kevent есть в unix  (в linux по другому называется) с помощью события ядра можно построить высокопроизводительный веб-сервер http://search.cpan.org/~msergeant/IO-KQueue-0.32/KQueue.pm  http://www.opennet.ru/base/dev/kevent_freebsd.txt.html но это для очень и очень нагруженных проектов, а не таких где....

еще fast_cgi жрет жестко память, если ее мало на сервер, лучше не использовать fast_cgi

Это сообщение отредактировал(а) gcc - 12.11.2009, 00:03
PM WWW ICQ Skype GTalk Jabber   Вверх
ginnie
Дата 12.11.2009, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



Цитата(gcc @  11.11.2009,  23:42 Найти цитируемый пост)
ginnie, а чем mod_perl не подойдет?


gcc, задача такая: соединится с сервером, поддерживая соединения получать от сервера новые данные (сообщения чата).
Предложи решение с использованием mod_perl.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
gcc
Дата 12.11.2009, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



ginnie, точно не скажу, но примерно как думаю:
(я имел ввиду fcgi vs mod_perl)

главное преимущество mod_perl то что он кэширует код во время выполнения в режиме Apache::Runtime, правильно?

в документации я увидел что многие веб-сервера используют данные технологии select/kevent/epoll, т.е. открытие нового соединения возможно скорее всего не будет сильно затруднительно?
Ускоряем свой HTTP-сервер и accept-фильтры

в документации Catalyst написано что mod_perl будет быстрее

еще писали портал на котором 10 млн хостов,в котром был Catalyst+MooseX+mod-perl там блы чат и очень много всего (не знаю как все работало, но писали что под Catalyst+mod_perl2)

например, может нужно выбирать fcgi или mod_perl в замисимости от контента? например, большой хостинговый сервер картинок отдает картинки через fcgi 

====
а Server Push говорят как-то можно реализовать в Apache MPM event для apache 2.2 mod_perl 
http://javascript.ru/ajax/server-push/over...nnoe-soedinenie
http://forums.devx.com/showthread.php?t=163336

Это сообщение отредактировал(а) gcc - 12.11.2009, 18:31
PM WWW ICQ Skype GTalk Jabber   Вверх
DurRandir
Дата 15.11.2009, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 335
Регистрация: 27.9.2009

Репутация: 1
Всего: 17



Этот мультиплексор и factcgi служат совершенно разным целям. 

Fastcgi - это протокол общения между веб-сервером и сервером приложений. Его нельзя выставить "наружу", обязательно нужен веб-сервер. Более того, веб-сервер с сервером приложений могут общаться и по http, и (в обобщённом смысле) через mod_perl, или через что-то своё (что делает dklab_multiplexor, если я правильно помню).

dklab_multiplexor в этой цепочке является заменой веб-серверу, позволяя эффективно общаться с клиентами с определённой задачей. Вам все равно нужен какой-то сервер приложений, который будет поставлять данные.
PM   Вверх
frenkys
Дата 17.11.2009, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 18.6.2005

Репутация: нет
Всего: 1



спасибо, разобрался
--------------------
 niva[frenky]
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.