Каккой выбрать асинхронный сервер + API для асинхронной передачи данных?
Рассматриваю node.js + sockjs или tornado + sockjs. Но разбираюсь в вопросе очень плохо. Прежде приходилось писать лишь на С+php+javascript+mysql+html+css. В общем, уровень у меня не особенно высокий, но я учусь (В данный момент понравился ещё python - изучаю)
По сути вопроса - в первую очередь хочу изначально выбрать асинхронный сервер, чтобы в будущем не пришлось выбирать другой. И начать изучать работу с ним. На просторах интернета так много всего, что я просто запутался.
Говорят, что node.js падает периодически. но так же нашёл информацию о том, что это связано с простаиванием сервера - можно увеличить длину тайм-аута, на случай, если сервер простаивает дольше обычного. Так же выяснил, что с математикой у node всё очень плохо. В связи с этим вопрос, на который я в интернете не нашёл ответа: Есть ли возможность что нибудь прикрутить к node, чтобы работать и с математикой в том числе.
Так же Заинтересовал tornado, но только потому, что чаще всего встречал упоминания о нём.
Интересно, что всё таки из этого работает быстрее, стабильнее?
Вообще говоря, я буду рад услышать и совсем другие решения. А чтобы не занимать дорогое время у экстрасенсов, опишу, чего бы мне хотелось достичь, используя выбранные серверы + библиотеки:
В планах помимо обучения, конечно, есть идея проекта: Конструктор сайтов с возможностью передавать мгновенные сообщения между пользователями (если коротко). При этом математические вычисления так же интересуют ввиду моей профессиональной специальности. Хочется иметь возможность писать математические сервисы и прикручивать их к проекту, или просто писать мат. сервисы и не прикручивать - не так важно. +Хотелось бы иметь возможность работы с библиотеками для обработки 3д и т п - просто на случай "а вдруг заинтересует когда нибудь" Повторю, что не хочется менять решение в будущем. Планирую расти и учиться в основном в вебе.
Простите за простыню и заранее благодарю за помощь и ответы.
> Имеется ввиду число желаемых подключений от клиентов и то, сколько сервер смог потянуть?
да. видно, какие пределы в обслуживании от серверов.
можете взять какой нить си, там еще лучше.
> Что вы имеете ввиду? Не смог найти ничего по запросам cowboy c language, cowboy си и т п. Однако наткнулся вот
я имел ввиду какой нить си сервер типа nginx и к нему обретку на lua :) если напишите.
> Страшный код тестового сервера на cowboy (erlang) + sockjs
ничего страшного, если это не Python - это еще не страшно, просто не привычно.
> Нет ли каких нибудь ещё вариантов? Или же только изучение Erlang даст возможность иметь хороший быстрый и стабильный сервер?
Да пользуйте что хотите. просто знайте про область применения.
Изучите Си и для вас откроются врата хайлоада :)
Сергей: Я совсем запутался :( здесь centminmod.com/siegebenchmarks/2013/020313 пишут, что node справляется с нагрузкой лучше чем nginx, однако в статье выше сказано, что cowboy явно стабильнее и быстрее чем node. Но Вы говорите, что самый лучшй вариант - использовать си сервер вроде nginx.
Объясните, пожалуйста, чего я не понимаю?
Nginx это наибыстрейший http-сервер. Внутри он обрабатывает все потоки ассинхронно с помощью epool библиотеки (ну внутри неё уже это делается последовательно на каждое ядро, оно ведь может переварить 1 операцию за раз). Apache использует обычные процессы от операционнос системы, т.о. имеет накладные расходы на создание\убийство такого процесса. А это очень тяжелая операция для ОС.
Поэтому все предпочитают nginx перед apache. А апач используется только как сервер для тяжелой логики, потому как имеет истиное распараллеливание. В то время как nginx предназначен для того чтобы быстро отдать быстро полученный ответ.
Знающие люди меня поправят, но я думаю для вас на данном этапе это не имеет значения.
Просто смотрите на то, что вам больше будет полезно в будущем.