Выбор технологий веб-приложений

В настоящее время я пишу пользовательский интерфейс в ember.js и нуждаюсь в некоторой помощи в решении на стороне сервера относительно технологий передачи и сценария на стороне сервера.

Приложение планируется просто обернуть вызовом нескольких серверных сценариев с добавлением некоторого сахара в базу данных для обработки прав пользователей и хранения входов-выходов.

Пользователи должны войти в систему для правильной работы с приложением.

Я ожидаю высокого параллелизма работающих пользователей, и, поскольку я могу использовать больше потоков параллельности на сервере, я не совсем уверен, должен ли я использовать Node.js+socket.io.

Половина запросов будет простым запросом к базе данных, а другой половине потребуется немного больше времени для вычисления другого серверного скрипта (до 5 с).

Я, скорее всего, буду использовать MongrelDB в качестве базы данных.

Мои самые большие вопросы:

  • Насколько безопасны сегодня технологии с чистыми веб-сокетами, или лучше иметь изящную деградацию Socket.io?
  • Будет ли node.js хорошо масштабироваться на многоядерном компьютере или мне следует использовать что-то вроде Mongrel2 с бэкэндом Python?
  • Будет ли обработчик Python работать с большим количеством пользователей, учитывая, что некоторые ответы действительно длинные?
  • Как мне обработать вошедших в систему пользователей с помощью node.js + socket.io?

1 ответ

Решение
  1. Лучше иметь постепенную деградацию - потому что протокол websocket все еще быстро меняется.
  2. Для scalling я использую Redis pub/sub, но вы можете использовать кластерный модуль для многоядерности.
  3. Не знаю
  4. Я делюсь сессией от подключения к socket.io с RedisStorage. Вы можете использовать RedisStorage только для обработки зарегистрированных пользователей.
Другие вопросы по тегам