Nodejs如何处理多个并行请求,以防止阻塞进程

我正在做一个小的项目,在这个项目中,一个用户向我的服务器发出一个http请求,然后我得到并处理来自三个不同服务器的一些数据,然后把总结的结果返回给客户端。

一切工作正常接受两个以上的客户端同时发出请求时,所有的客户端都无法获得响应,并面临超时错误。

如何处理这件事情。

提前致谢

好的我明白了。 我会build议使用es6承诺这种东西。 您可以使用request-promise和bluebird向其他服务器发起 http请求。

然后只是:

var rp = require('request-promise'); var bluebird = require('bluebird'); bluebird .all(rp('http://www.google.com'), rp('http://example.com')) .then(function (googleResponse, exampleResponse) { // Some computation return someResult; }) .then(function (previousResult) { // Some more computation return someResult; }); 

基本上你想做的是计算的一部分,然后返回并允许节点接pipe,然后在下一步做计算的其他部分等等。 如果你将stream程分成几个小块,你应该能够减less阻塞。

除此之外,您可以检出节点群集,这是一个非常简单的过程,它允许您处理几个工作人员之间的服务器负载: https : //www.sitepoint.com/how-to-create-a-node-js-cluster-for -speeding -上-你-应用程序/