Какой выбрать язык для серверной части highload проекта?
Доброго времени суток.
Есть большой проект и мне выпала честь переписать его логику.
Цель такова:
Сделать все вычисления, записи и прочее касаемо логики проекта отдельно от всего. Что бы веб и мобильные версии просто отправляли запросы на логическую часть и она выполняла все основные операции.
Сразу скажу основные претенденты Python и NodeJs.
Я смотрел различные статистики и где-то python, где-то nodejs лучше.
От проекта требуется хорошая производительность с малым потреблением ресурсов (сервер мощный, не подумайте). Определённо будет большой кол-во обращений к PostgreSql базе.
Не знаю какой язык и фреймворк выбрать под такие нужды.
Товарищ подталкивает написать всё на C++ и идея впринципе не плохая, но переживаю за скорость разработки и стабильность проекта.
Точный трафик не припомню. Но за день больше 10к на сайт.
Веб версия сама сейчас написана на PHP+Symfony и скорость работы этой связки не устраивает. Нужно что то более шустрое.
А на тему Python - лучше на чистом или какой-нить фреймворк посоветуете?
Ну 10-100к за сутки, это не большая нагрузка.
Берите PHP + Phalcon, и делайте RESTful API для фронт частей (веб, мобильный апп)
Если все таки хотите Python, чистый не к чему, возьмите Django REST Framework
Да, в принципе можно взять тот же Phalcon, нормально кэшировать запросы в БД и не заморачиваться. Если у вас модель БД "черезодноместо", а так оно бывает у 80% людей которые задают подобные вопросы, то тут никакой фреймворк/язык/законы вселенской магии не помогут вам сделать ваш сервис быстрее - нужно было нормально организовывать работу и проводить QA.
Блин, я думал хайлоэд. 10к в день хоть на Джумле пиши, тока кеш настрой. С++ тут точно не нужен. Любой язык справится. Асинхронность тут точно не нужна.
Куча проблем с ржавой: энтерпрайсы глюкают, ORM'ы избыточны до ужаса, из того что есть можно брать netty да JDO на DataNucleus'e и развлекаться, кэшировать где-то в terracotta / hazelcast etc. Для реальных высоконагрузов (4-18M rps 10-40Gbit) часто приходиться прикручивать pfRing / netmap.