J'ai eu l'obligation de construire une API REST en node.js et était à la recherche pour plus de lumière-poids cadre de express.js ce qui, probablement, évite les fonctionnalités indésirables et agirait comme un custom-built-cadre pour la construction des Api REST. Restify de son intro est recommandé pour la même affaire.
La lecture de Pourquoi utiliser restify et de ne pas s'exprimer? semblait restify est un bon choix.
Mais la surprise est venue quand j'ai essayé les deux avec une charge.
J'ai fait un échantillon d'API REST sur Restify et inondé avec 1000 requêtes par seconde. Surprise pour moi, la route a commencé ne répond pas après un certain temps. La même application construite sur express.js occupé de tout.
Je suis actuellement en application de la charge à l'API via
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();
}
N'des résultats que j'ai obtenu sembler de bon sens? Et si oui, est-express plus efficace que restify dans ce scénario? Ou est-il une erreur dans la façon dont je les ai testés?
mis à jour en réponse aux commentaires
le comportement de restify
lorsque nourris avec un chargement de plus de 1000 req.s il arrêté le traitement en 1 sec recevoir jusqu'à 1015 req.s et puis ne rien faire. c'est à dire. le compteur j'ai mis en place pour le comptage des demandes entrantes arrêté incrément après 1015.
lorsque nourris avec une charge de 100 reqs. par seconde, il a reçu jusqu'à 1015 et disparu non sensible par la suite.