【问题标题】:How many NodeJS Express servers can I run in parallel?我可以并行运行多少个 NodeJS Express 服务器?
【发布时间】:2016-11-19 07:35:20
【问题描述】:

我正在设置一个将被许多客户端使用的文件服务器。除此之外,还会定期添加和删除客户端。

我使用 NodeJS+Express 编写了一个简单的服务器,可以进行一些简单的文件处理。创建新客户端时,必要的文件将复制到客户端的根目录中。为客户端启动了一个 nodeJS 服务器,它提供了一个简单的 Web 界面和一个用于从中提取信息的 API。当客户端完成时,文件被删除并且服务器被关闭。客户可能会使用它数月甚至数年,或者一次只使用几天。

这个系统对于几十个用户来说效果很好,但现在需要扩大规模以处理数百个用户。

所以我的问题是,这会扩大规模吗?一台中等功率的机器可以处理数百个 Node+Express 服务器,还是应该重写?

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    应该重写它,这样您就不会为每个单独的用户提供服务器。单个 nodejs 服务器应该能够处理许多用户(可能是数千或数万)的需求。然后,如果您超出了单个服务器可以处理的规模,那么您可以部署集群以让多个 nodejs 服务器处理数千个用户的需求。

    您可以使用某种经过身份验证的 cookie 来识别每个请求属于哪些用户,这样当给定请求进来时,您就知道要对哪个用户的文件进行操作。

    而且,为了获得最大的可扩展性,您的所有文件操作都应该使用异步文件 I/O(非同步)。如果您有 CPU 密集型的特定文件操作,那么您可以将这些特定操作移至临时子进程,以允许您的主 nodejs 服务器继续支持大量用户的需求。

    所以我的问题是,这会扩大规模吗?可以中等功率 机器处理数百个 Node+Express 服务器,或者应该是 重写?

    让一些使用异步 I/O 和集群的 nodejs 进程能够更好地扩展以满足成千上万用户的需求。这是 nodejs 的整体可扩展性优势。事件驱动的 I/O 比为每个用户都拥有一个进程或线程更具可扩展性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      • 2017-10-11
      相关资源
      最近更新 更多