我需要在node.js中构建REST API,并且正在寻找一个比express.js更轻巧的框架,这可能避免了不需要的功能,并且会像构建REST API的自定义框架一样工作。对于相同的情况,建议从其介绍中重新调整。
阅读为什么使用重整而不表达?似乎重新调整是一个不错的选择。
但是当我尝试了两个负载时,惊喜就来了。
我在Restify上制作了一个示例REST API,并以每秒1000个请求的速度充斥了它。令我惊讶的是,一段时间后,该路线开始没有反应。基于express.js构建的同一个应用程序可以处理所有问题。
我目前正在通过以下方式将负载应用于API
var FnPush = setInterval(function() {
for(i=0;i<1000;i++)
SendMsg(makeMsg(i));
}, 1000);
function SendMsg(msg) {
var post_data = querystring.stringify(msg);
var post_options = {
host: target.host,
port: target.port,
path: target.path,
agent: false,
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': post_data.length,
"connection": "close"
}
};
var post_req = http.request(post_options, function(res) {});
post_req.write(post_data);
post_req.on('error', function(e) {
});
post_req.end();
}
我得到的结果似乎合理吗?在这种情况下,表达是否比重新定义更有效?还是我测试它们的方式有任何错误?
更新以回应评论
重整行为
当负载超过1000 req.s时,它仅在1秒钟内停止处理,直到1015 req.s,然后什么也不做。即。我实现的用于计数传入请求的计数器在1015年之后停止递增。
当负载甚至达到100 reqs时。每秒接收到1015,之后一直没有响应。