Scala или Python для создания сервера Comet для поддержки приложения PHP? - PullRequest
2 голосов
/ 22 сентября 2010

У меня есть работающее приложение PHP, которое я хочу добавить в режиме реального времени (последние результаты поиска в Google), у меня есть реализация на PHP, которая выполняет следующие действия:

  1. AJAX-запрос к серверу.
  2. PHP отвечает.
  3. Через 15000 мс (15 секунд), используя setTimeout (), мы повторяем шаги.

Я знал, что это очень сильно влияет на сервер и вызывает проблемы с C10K.

После исследования я выяснил, что PHP как модуль Apache2 некомпетентен для реализации решений Comet, что вызывает сожаление!

У меня есть два варианта: использовать Scala или использовать Python для реализации этой части моего веб-сайта, так как она полностью завершена и у нее нет времени на ее переписывание.

Мне все равно, потому что мне важна производительность, поскольку я использую VPS200 из ServerGrove , и я собираюсь установить JVM или Python параллельно с PHP.

Так что, по вашему мнению, потребляет меньше памяти / ЦП в этом случае JVM с Scala или Python?

Заранее спасибо

Обновление: Я думаю, что я буду использовать Akka Project , я собираюсь протестировать его.

Обновление 2: Я сделал это, используя Node.js , это несопоставимо с любым другим решением (IMO) по кривой обучения, поддержке сообщества и зрелости проекта. И у меня был неудачный опыт работы со Scala, так как я дал Scala очень долгую возможность перед тем, как попробовать Node.js.

Ответы [ 2 ]

4 голосов
/ 23 сентября 2010

Почему бы не node.js ?Он имеет проверенную репутацию решения, которое отлично справляется с COMET.Всем известно, история успеха Plurk - один из самых популярных социальных сетей в Азии, на котором подписано более 500 млн. Подписчиков, причем до 200 тыс. Из них работают параллельно (с использованием длинных соединений COMET).Использование памяти в файле node.js намного лучше (примерно в 10 раз) по сравнению с решениями на основе сервера приложений Java, подходящего для COMET (Jetty / Netty) .Если вы, наконец, хотите перейти на Java / Scala, вы должны прежде всего взглянуть на Atmosphere framework.В настоящее время он обладает самым богатым набором функций (поддерживает все виды стратегий COMET + веб-сокеты + сервлеты 3.0); готовая REST-поддержка, основанная на Джерси (реализация спецификации JAX-RS); интеграция с Akka (очень мощная реализация актеров, отказоустойчивости, STM, удаленных взаимодействий и т. Д. В Scala).Выбрав Lift, вам, вероятно, придется полностью переписать ваше приложение, хотя оно имеет очень хорошую поддержку COMET.

2 голосов
/ 22 сентября 2010

Scala с лифтом (lliftweb.org) будет иметь лучшую возможность для производительности. Поддержка кометы в Lift превосходна. Вы должны проверить их оба с небольшим прототипом и сравнить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...