저는 node.js에서 REST API를 구축해야한다는 요구 사항이 있었고 원하지 않는 기능을 피하고 REST API를 구축하기위한 맞춤형 프레임 워크처럼 작동하는 express.js보다 더 가벼운 프레임 워크를 찾고있었습니다. 같은 경우 인트로에서 Restify하는 것이 좋습니다.
읽기 사용 restify와 표현하지 왜? restify가 좋은 선택 인 것처럼 보였습니다.
그러나 내가 두 가지를 모두 시도했을 때 놀라움이 왔습니다.
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 요청 이상의 부하로 공급되면 1015 요청까지 수신하고 아무것도하지 않는 1 초 만에 처리를 중지했습니다. 즉. 들어오는 요청을 계산하기 위해 구현 한 카운터는 1015 이후 증가를 중지했습니다.
심지어 100 reqs의 부하로 먹일 때. 초당 1015까지 수신했고 그 이후에는 응답하지 않았습니다.