Какую среду в реальном времени вы бы выбрали для веб-приложения с большим трафиком и почему? - PullRequest
5 голосов
/ 15 ноября 2010

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

Например, у нас есть следующие варианты:: Запустите приложение CodeIgniter на сервере nginx, используя плагин Comet , используйте среду Python, например Twisted или Tornado , используйте Орбита для поддержания постоянного соединения с сервером и т. Д.

Какая настройка будет лучше всего масштабироваться для приложения реального времени, а также будет проста в реализации?

Приложение : на этот вопрос я бы хотел ответить: какой веб-приложение в реальном времени проще написать в Twisted / TwistedWeb или Tornado?

Edit : Приблизительные цифры: мы планируем начать с того, что сможем управлять 10 000 одновременных подключений, но в дальнейшем сможем масштабировать до 1 000 000, переключая технологии / добавляя серверы.Мы будем толкать только текстовые сообщения, включая длинные текстовые сообщения.Мы хотим, чтобы аспект в реальном времени был действительно в реальном времени с задержкой <5 секунд. </p>

Ответы [ 4 ]

3 голосов
/ 20 ноября 2010

После долгих исследований мы решили использовать Node . Он должен быть достаточно простым для реализации и достаточно хорошо масштабируемым, и если у нас появятся миллионы одновременно работающих пользователей, мы рассмотрим более масштабируемые и сложные решения.

2 голосов
/ 01 декабря 2010

Предлагаю вам взглянуть на Planet Framework (отказ от ответственности, я один из разработчиков).

Он предлагает решение для полного стека с шаблонами на стороне клиента и на стороне сервера, кросс-браузерными функциями push и разделением базы данных. Основанный на gevent, он предлагает нормальную семантику блокировки (в отличие от node.js) в сочетании с простотой Python.

В настоящее время мы приглашены только для приглашений, но вся наша документация доступна публично. Я предлагаю вам запросить приглашение на сайт, так как мы постоянно одобряем новых пользователей.

1 голос
/ 16 ноября 2010

Вы еще не предоставили достаточно информации для принятия правильного решения.Большое количество одновременно работающих пользователей, которые передают друг другу новые сообщения, просто недостаточно.Только текст?Или тоже видео?Только короткие тексты или также длинные тексты?Только написано сейчас или загружено?10.000 одновременных пользователей или 10.000.000?Все они с самого начала, или у вас есть время, чтобы нарастить / переключить технологии / построить центр обработки данных?Насколько хорошо в реальном времени?Задержка в 1 секунду или несколько минут?Сколько подписок на сообщения вы хотите разрешить?

На верхнем уровне этих вопросов вы сами по себе, просто написание собственного кода является единственным разумным способом.Ослабление некоторых ограничений позволяет использовать существующие фреймворки

1 голос
/ 16 ноября 2010

Вы смотрели на Zope или даже Plone (хотя это CMS)? Известен тем, что обрабатывает сайты с большим трафиком, такие как NASA и more , но работает под объектно-ориентированной базой данных (что является основной причиной такого выступления), и я не знаю, хотите ли вы этого.

Zope и Plone написаны на Python.

...