【问题标题】:Is Express the most scalable application framework for NodeJS?Express 是 NodeJS 最具可扩展性的应用程序框架吗?
【发布时间】:2018-02-15 18:34:42
【问题描述】:

除了 Express 之外,我对其他基于 Node 的 Web 应用程序框架并不十分熟悉。尽管如此,Express 似乎可以完成的任务非常轻量级。但是,我唯一一次使用 Express 是用于小型实验项目,并且没有为大量用户提供服务。所以我想知道,我是否应该将我的知识扩展到服务于这种“可扩展性”指标的其他框架?如果是,它们是什么?

【问题讨论】:

  • 我的快速路由在~6ms1000 req/sec 左右工作,大部分工作负载是数据库查找等。所以是的,它可以很好地扩展到大多数用途。是的,很多其他框架也很高效......
  • @JonasW。那doesn't sound much :-)
  • @bergi 好的,实际上这是我测试的最大值。它可能会做得更多,但我认为大多数服务器不会达到这个数字。

标签: javascript node.js express scalability


【解决方案1】:

Express 具有与 nginx 和 Apache 等其他服务器类似的可扩展性。考虑因素几乎相同。

如果您想扩大规模,最好的方法是(就像使用 nginx 和 Apache)以您可以运行多个服务器实例的方式编写您的应用程序(然后使用负载平衡器进行连接)他们在一起)。

这需要考虑如何处理会话,但这并不是 Express 独有的问题。事实上,会话默认的 express-session 包使得拥有基于数据库的会话变得非常容易,这使得它不是问题

一个特殊的考虑因素是,如果您在多 CPU 核服务器上运行它们,由于 Node 基本上是单线程的,因此为每个 CPU 核启动一个实例以最大限度地提高性能也很有帮助。与原生多线程的东西(如 nginx)相比,这可能会导致一些性能下降,但仅当您尝试使用一些非常强大的服务器时才适用。使用大量小型服务器来进行扩展更为常见。

除此之外,它几乎可以像其他任何东西一样工作。

将它与其他可能的基于节点的服务器进行比较,它的性能应该与它们中的任何一个一样好。因为它很轻,所以没有什么可以优化的。

我们使用快速服务器为非常大的项目提供服务,并且从未遇到任何问题。我们只是将它们按比例放大,然后它们就会消失。

【讨论】:

    猜你喜欢
    • 2013-07-06
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 2014-11-15
    • 2014-03-25
    • 2011-06-19
    相关资源
    最近更新 更多