Выбор технологий веб-приложений
В настоящее время я пишу пользовательский интерфейс в ember.js и нуждаюсь в некоторой помощи в решении на стороне сервера относительно технологий передачи и сценария на стороне сервера.
Приложение планируется просто обернуть вызовом нескольких серверных сценариев с добавлением некоторого сахара в базу данных для обработки прав пользователей и хранения входов-выходов.
Пользователи должны войти в систему для правильной работы с приложением.
Я ожидаю высокого параллелизма работающих пользователей, и, поскольку я могу использовать больше потоков параллельности на сервере, я не совсем уверен, должен ли я использовать Node.js+socket.io.
Половина запросов будет простым запросом к базе данных, а другой половине потребуется немного больше времени для вычисления другого серверного скрипта (до 5 с).
Я, скорее всего, буду использовать MongrelDB в качестве базы данных.
Мои самые большие вопросы:
- Насколько безопасны сегодня технологии с чистыми веб-сокетами, или лучше иметь изящную деградацию Socket.io?
- Будет ли node.js хорошо масштабироваться на многоядерном компьютере или мне следует использовать что-то вроде Mongrel2 с бэкэндом Python?
- Будет ли обработчик Python работать с большим количеством пользователей, учитывая, что некоторые ответы действительно длинные?
- Как мне обработать вошедших в систему пользователей с помощью node.js + socket.io?
1 ответ
- Лучше иметь постепенную деградацию - потому что протокол websocket все еще быстро меняется.
- Для scalling я использую Redis pub/sub, но вы можете использовать кластерный модуль для многоядерности.
- Не знаю
- Я делюсь сессией от подключения к socket.io с RedisStorage. Вы можете использовать RedisStorage только для обработки зарегистрированных пользователей.