На чем написать высоконагруженный api сервер?

Доброе время суток! Внимание, знатоки, вопрос: "Если бы перед вами стояла задача написать высоконагруженное api(пока что просто принимает данные с PC клиентов и кладет их в MongoDB), какую технологию вы бы выбрали?". У меня есть несколько вариантов:
  • GoLang - подкупает своими горутинами
  • Scala(Spray) - FP и акторы
  • NodeJS -- удобно работать с MongoDB

Но хотелось бы услышать мнение людей которые решали подобную задачу.
  • Вопрос задан
  • 3272 просмотра
Пригласить эксперта
Ответы на вопрос 13
opium
@opium
Просто люблю качественно работать
Пишите на чем умеете
Ответ написан
sim3x
@sim3x
Пиши на пхп - так будет меньше ошибок, которые будут больше мешать чем производительность ЯП
Ответ написан
uvelichitel
@uvelichitel Куратор тега Go
habrahabr.ru/users/uvelichitel
Авторитетный бенчмарк.
В плане личностных предпочтений, я сейчас все пишу на Go, потому что нравицца.))
Нравицца - серьезный фактор, пока количество ваших PC клиентов не шкалит, facebook на PHP писали.
Ответ написан
Перед написанием высоконагруженного приложения важно правильно продумать архитектуру, выбрать метрики для замера производительности. Может, нужно вообще выбрать другую СУБД, продумав как оптимальнее доступ к данным. СУБД стоит подбирать также исходя из того на что больше упор: на операции чтения или записи.
Выбранная экосистема языка может иметь второстепенное значение.
Ответ написан
Комментировать
@nirvimel
Нисколько не ставя под сомнение авторитетность, приведенного uvelichitel , бенчмарка от techempower.com, хочу только напомнить, что это - бенчмарк для фреймворков. Когда задача стоит так: "производительность любой ценой!", то всем фреймворкам лучше подвинутся в сторону и не мешать.

Один только пример: эти парни добились скорости обработки 2 микросекунды на запрос-ответ даже не на голом железе а под JVM. Все фреймворки-чемпионы techempower-бенчмарка молча курят в стороне.
Ответ написан
mrFreezbe
@mrFreezbe
Из опыта.
Очень не рекомендую Go и nodejs. Go - ужасен как язык (субъективно, мне на нем просто противно писать),
nodejs - требует очень больших усилий и внимательности при написании приложения что бы оно вело себя стабильно.
В итоге для себя я выбрал clojure.
Ответ написан
Комментировать
xytop
@xytop
PHP/RoR web dev & tech lead
И на C++ извратиться можно при желании (rutracker почти полностью на нем написан).
Как человек, решавший подобную задачу, могу сказать что пишут на том, что лучше знают :)
И на Laravel и на Sinatra и на Golang и на Flask.
Высокие нагрузки мудрые дяди держат путем горизонтального масштабирования, а не смены языка :)
Ответ написан
@jaxel
При больших нагрузках решающее значение имеет архитектура, а не язык. Пишите на том, что лучше знаете.
Ответ написан
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Ответ написан
Комментировать
AMar4enko
@AMar4enko
Elixir. Фана куча. У меня от Go было чувство, как будто лимон сожрал, а тут прямо все здорово.
Вроде и эрланг, но вроде и по-человечески все.
Ответ написан
mirrr
@mirrr
Программист и просто хороший человек
Для golang даже код готовый дать могу )
pastebin.com/qwXgUXdJ

Но рекомендовать не буду) Просто для оценки поля боя)
Ответ написан
Комментировать
@zoh
а я вот не рекомендую браться за Scala+Akka только из-за фана если при этом важно время.
Я как то делал критичный по нагрузке проект и продинамил 1 мес.
Ответ написан
Комментировать
@ZOXEXIVO
Выбирай .NET Core.
Один из самых удобных языков - C#, runtime возишь с собой и он ни от чего не зависишь.
Лучшая на рынке IDE, в которой есть бесплатная редакция - Visual Studio
Go можно использовать, когда тебе нужно написать то, что в принципе невозможно на .NET - создать много легковесных потоков.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы