Node.js'de bir REST API oluşturma gereksinimim vardı ve express.js'den muhtemelen istenmeyen özelliklerden kaçınan ve REST API'leri oluşturmak için özel olarak oluşturulmuş bir çerçeve gibi davranan daha hafif bir çerçeve arıyordum. Aynı durum için girişinden yeniden ifade edilmesi önerilir.
Okuma Neden ifade etmeyip yeniden ifade kullanmalısınız? restify iyi bir seçim gibi görünüyordu.
Ama sürpriz ikisini de bir yük ile denediğimde geldi.
Restify'da örnek bir REST API yaptım ve saniyede 1000 istekle doldurdum. Rota bir süre sonra yanıt vermemeye başladı. Express.js üzerinde oluşturulan aynı uygulama hepsini ele aldı.
Şu anda yükü API'ye uyguluyorum
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();
}
Aldığım sonuçlar mantıklı görünüyor mu? Ve eğer öyleyse, bu senaryoda ifade etmek, yeniden ifade etmekten daha etkilidir? Yoksa onları test etme şeklimde herhangi bir hata var mı?
yorumlara yanıt olarak güncellendi
yeniden biçimlendirme davranışı
1000'den fazla istekli yük ile beslendiğinde, yalnızca 1 saniyede 1015 isteklere kadar alım yapıp sonra hiçbir şey yapmadan işlemeyi durdurdu. yani. Gelen istekleri saymak için uyguladığım sayaç 1015'ten sonra artmayı durdurdu.
100 istekli bir yükle beslendiğinde. saniyede 1015'e kadar aldı ve ondan sonra yanıt vermedi.