缩放节点js以侦听多个端口

时间:2014-07-22 19:13:26

标签: node.js express nginx scalability

我继承了最近导致问题的遗留代码。我想知道在更新源代码之前我需要采取的方法是正确的。

目前,我们有11种不同的服务需要收听11个不同的端口。正如它目前实现的那样,在一个服务器上运行着11个独立的nodejs实例,其中每个实例都使用express来监听不同的端口。每个nodejs实例都使用集群模块,具有一个主服务器和三个工作服务器。所以总共有11" master" nodejs进程,33" worker" nodejs进程一次在同一台服务器上运行。

作为入口点,我们让nginx监听端口80,并根据服务器名称将流量重定向到特定端口。

其中一个服务在峰值期间每分钟接收大约10,000个请求,并且一些请求超时(未被服务)。正在服务的请求的平均响应时间约为10毫秒。日志中没有错误或例外。

我尝试了几种不同的方法,例如:使用更大的实例,调整工作进程的数量,调整ipv4堆栈等等。并且仍然存在相同的问题。

根据我的阅读,缩放nodejs的正确方法是只使用一个nodejs实例使用集群,并让它监听所有11个端口。

是否有人遇到类似的问题或有任何关于解决此问题的提示/想法?我只有一个nodejs实例的方法需要一些代码更改,这可能会引入错误。所以,如果我可以避免更改源代码,我宁愿修复当前的实现。

由于

0 个答案:

没有答案
相关问题