我可以并行运行多少个NodeJS Express服务器?

时间:2016-11-18 17:36:22

标签: javascript node.js express

我正在设置一个将被许多客户端使用的文件服务器。最重要的是,客户将定期添加和删除。

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

该系统适用于几十个用户,但现在需要扩展以处理数百个用户。

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

1 个答案:

答案 0 :(得分:3)

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

您可以使用某种经过身份验证的Cookie来识别每个请求所属的用户,以便在给定请求进入时,您知道要对哪些用户的文件进行操作。

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

  

所以我的问题是,这会扩大吗?可以适度供电   机器处理数百个Node + Express服务器,或者应该这样   改写?

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