Предложения для неблокирующих и быстрых серверов, фреймворков, языков? - PullRequest
1 голос
/ 23 ноября 2011

Наш новый проект получит много параллельных запросов. У меня нет большого опыта с этим. Какие-либо предложения? Я смотрел на NodeJS, Twisted, EventMachine & Tornado, но у меня нет никакого способа измерить, насколько они будут подходящими.

Есть предложения?

Ответы [ 4 ]

1 голос
/ 24 ноября 2011

Разработайте метрику для измерения пригодности, затем используйте эту метрику. Как кто-нибудь здесь может сказать вам, какой из них наиболее подходит, если вы не предоставите никаких оснований для оценки?

Подожди, поцарапай это. Twisted наиболее подходит для всего, всегда, несмотря ни на что.

1 голос
/ 23 ноября 2011

Пригодность конкретной неблокирующей структуры может зависеть от определенных аспектов, таких как:

  • Предпочитаемый язык / платформа - кто-то может разбираться в конкретном языке, что может ускорить разработку. Также поиск квалифицированных людей может быть проблемой.
  • Доступность неблокирующих библиотек для вашей инфраструктуры - например, большинство модулей node.js по умолчанию неблокируют по сравнению с другими платформами, где вы можете столкнуться с проблемой поиска неблокирующей версии библиотеки, которая предлагает требуемая функциональность.
  • Необходима документация и поддержка сообщества.
1 голос
/ 23 ноября 2011

Как говорят другие - вам следует использовать ту, в которой есть нужные вам неблокирующие библиотеки (например, драйверы БД) и, если возможно, использовать язык, который знает ваша команда.Популярность также может быть преимуществом.

Если вы программируете на Python, gevent также может быть хорошим вариантом.Существует даже реализация Socket.IO .

1 голос
/ 23 ноября 2011

Задайте себе следующие вопросы (как минимум), а затем решите:

  1. Какой язык я (или / и мои коллеги) знаю?Если вы знаете Python, вы можете выбрать Twisted, если вы знаете Ruby, вы можете выбрать EventMachine или если вы действительно хорошо разбираетесь в JavaScript, вы можете выбрать Node.js.(только у Эрланга здесь нет преимущества)

  2. Хочу ли я использовать языковую конструкцию (Erlang, Node.js) или библиотеку (Twisted, EventMachine)?

  3. Нужно ли много ресурсов, поддержка сообщества, книги и т. Д.?Проверьте сами, насколько велики их каналы на IRC, вы сами составите идею.(Я могу быть предвзятым, но я вижу множество людей на каналах Node.js, и они действительно полезны)

  4. Насколько зрелой должна быть среда?(Например, Node уже 2 года, Erlang был официально выпущен в `98 и т. Д.)

  5. Какие компании / продукты используют какие асинхронные платформы?(например, CouchDB был построен с Erlang, Node.js используется Github, Linkedin и другими, EventMachine используется PostRank, 37 сигналов и т. д.)

...