【发布时间】:2011-11-23 03:11:21
【问题描述】:
我们的新项目会收到很多并发请求。我对此没有太多经验。有什么建议么?我看过 NodeJS、Twisted、EventMachine 和 Tornado,但我无法衡量它们的适用性。
有什么建议吗?
【问题讨论】:
标签: node.js twisted tornado eventmachine
我们的新项目会收到很多并发请求。我对此没有太多经验。有什么建议么?我看过 NodeJS、Twisted、EventMachine 和 Tornado,但我无法衡量它们的适用性。
有什么建议吗?
【问题讨论】:
标签: node.js twisted tornado eventmachine
问自己以下问题(至少)然后做出决定:
我(或/和我的同事)知道什么语言?如果您了解 Python,则可以选择 Twisted;如果您了解 Ruby,则可以选择 EventMachine;如果您非常擅长 JavaScript,则可以选择 Node.js。 (这里只有 Erlang 没有优势)
我要使用语言结构(Erlang、Node.js)还是库(Twisted、EventMachine)?
我需要大量资源、社区支持、书籍等吗?亲自检查一下他们在 IRC 上的频道有多大,你会想出一个主意。 (我可能有偏见,但我在 Node.js 频道上看到很多人,他们真的很有帮助)
您希望框架成熟到什么程度? (例如Node有2年,Erlang已经在`98等正式发布了)
哪些公司/产品正在使用哪些异步框架? (例如 CouchDB 是用 Erlang 构建的,Node.js 被 Github、Linkedin 等使用,EventMachine 被 PostRank、37 个信号等使用)
【讨论】:
特定非阻塞框架的适用性可能取决于某些方面,例如:
【讨论】:
正如其他人所说 - 您应该使用具有您需要的非阻塞库(例如 DB 驱动程序)的库,并且如果可能的话,使用您的团队知道的语言。受欢迎也可能是一个优势。
如果您使用 Python 进行编程,gevent 也可能是一个不错的选择。甚至还有Socket.IO implementation。
【讨论】:
制定衡量适用性的指标,然后使用该指标。如果你不提供任何评估依据,这里的人怎么能告诉你哪个最合适?
等等,从头开始。 Twisted 是最适合一切的,永远,无论如何。
【讨论】: