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

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

Но хотелось бы услышать мнение людей которые решали подобную задачу.
  • Вопрос задан
  • 2802 просмотра
Пригласить эксперта
Ответы на вопрос 13
opium
@opium
Просто люблю качественно работать
Пишите на чем умеете
Ответ написан
sim3x
@sim3x
Пиши на пхп - так будет меньше ошибок, которые будут больше мешать чем производительность ЯП
Ответ написан
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Авторитетный бенчмарк.
В плане личностных предпочтений, я сейчас все пишу на Go, потому что нравицца.))
Нравицца - серьезный фактор, пока количество ваших PC клиентов не шкалит, facebook на PHP писали.
Ответ написан
2ord
@2ord
продвинутый чайник
Перед написанием высоконагруженного приложения важно правильно продумать архитектуру, выбрать метрики для замера производительности. Может, нужно вообще выбрать другую СУБД, продумав как оптимальнее доступ к данным. СУБД стоит подбирать также исходя из того на что больше упор: на операции чтения или записи.
Выбранная экосистема языка может иметь второстепенное значение.
Ответ написан
@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
При больших нагрузках решающее значение имеет архитектура, а не язык. Пишите на том, что лучше знаете.
Ответ написан
AMar4enko
@AMar4enko
Elixir. Фана куча. У меня от Go было чувство, как будто лимон сожрал, а тут прямо все здорово.
Вроде и эрланг, но вроде и по-человечески все.
Ответ написан
mirrr
@mirrr
Программист и просто хороший человек
Для golang даже код готовый дать могу )
pastebin.com/qwXgUXdJ

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

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

Войти через центр авторизации
Похожие вопросы
Эвотор Москва
от 180 000 до 300 000 ₽
BuildSafe Tech Санкт-Петербург
от 140 000 ₽
от 80 000 до 120 000 ₽
11 авг. 2020, в 10:34
1000 руб./за проект
11 авг. 2020, в 10:16
1000 руб./за проект
03 авг. 2020, в 08:33
100000 руб./за проект