Node.js管道泄漏
我为我的微服务系统写了一个网关。 网关是在node.js中编写的 该网关将请求转发给内部微服务,并在获得处理结果后响应客户端。 但是这个网关消耗的内存不断增加,每小时增加24Mb 你能帮我澄清一下原因吗: 代码如下:Node.js管道泄漏,node.js,pipeline,Node.js,Pipeline,我为我的微服务系统写了一个网关。 网关是在node.js中编写的 该网关将请求转发给内部微服务,并在获得处理结果后响应客户端。 但是这个网关消耗的内存不断增加,每小时增加24Mb 你能帮我澄清一下原因吗: 代码如下: var express = require('express'); var requestify = require('requestify'); var app = express(); var request = require('request'); var con
var express = require('express');
var requestify = require('requestify');
var app = express();
var request = require('request');
var config = require('./config.js');
var API_ERROR = 'error';
var DISCOVERY_NOTHING = 'nothing' ;
var TIMEOUT = 10000 ;//ms
function registerEntry(path,entryId) {
app.use(path, function(req, res) {
requestify.get(config.discovery+"?service_id="+entryId, {timeout:TIMEOUT}).then( function(response) {
var apiUrl = response.getBody() ;
if(apiUrl==DISCOVERY_NOTHING) {
res.send(API_ERROR);
}
var url = apiUrl + req.url ;
console.log(url);
req.pipe(request(url)).pipe(res).on('error', function(e) {
res.send(API_ERROR);
});
});
});
}
registerEntry('/authen','altp.authen') ;
registerEntry('/profile','altp.profile');
registerEntry('/question','altp.question');
registerEntry('/gameplay','altp.gameplay');
registerEntry('/admin','altp.admin');
app.listen(80, function() {
console.log('listening at 80');
});
请复制/粘贴代码,请勿使用图像!我没有时间重写你的代码。我在开发自己的微服务网关()时遇到了类似的问题,直到我改用http代理进行代理()时,我才找到漏洞的来源。@Michelem:我添加了完整的code@slebetman:谢谢你,这是个好建议,我会尽力的,但首先我想解决这个问题,以避免它在未来。