【问题标题】:Suggestions for non-blocking & fast servers, frameworks, languages?对非阻塞和快速服务器、框架、语言的建议?
【发布时间】:2011-11-23 03:11:21
【问题描述】:

我们的新项目会收到很多并发请求。我对此没有太多经验。有什么建议么?我看过 NodeJS、Twisted、EventMachine 和 Tornado,但我无法衡量它们的适用性。

有什么建议吗?

【问题讨论】:

    标签: node.js twisted tornado eventmachine


    【解决方案1】:

    问自己以下问题(至少)然后做出决定:

    1. 我(或/和我的同事)知道什么语言?如果您了解 Python,则可以选择 Twisted;如果您了解 Ruby,则可以选择 EventMachine;如果您非常擅长 JavaScript,则可以选择 Node.js。 (这里只有 Erlang 没有优势)

    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 个信号等使用)

    【讨论】:

      【解决方案2】:

      特定非阻塞框架的适用性可能取决于某些方面,例如:

      • 首选语言/平台 - 有人可以精通特定语言,这可能会加快开发速度。找到熟练的人也可能是个问题。
      • 为您的框架提供非阻塞库 - 例如,与其他框架相比,大多数 node.js 模块默认是非阻塞的所需的功能。
      • 文档和社区支持至关重要。

      【讨论】:

        【解决方案3】:

        正如其他人所说 - 您应该使用具有您需要的非阻塞库(例如 DB 驱动程序)的库,并且如果可能的话,使用您的团队知道的语言。受欢迎也可能是一个优势。

        如果您使用 Python 进行编程,gevent 也可能是一个不错的选择。甚至还有Socket.IO implementation。

        【讨论】:

          【解决方案4】:

          制定衡量适用性的指标,然后使用该指标。如果你不提供任何评估依据,这里的人怎么能告诉你哪个最合适?

          等等,从头开始。 Twisted 是最适合一切的,永远,无论如何。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-11-25
            • 1970-01-01
            • 2015-04-25
            • 1970-01-01
            • 1970-01-01
            • 2018-06-14
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多