मुझे नोड.जेएस में आरईएसटी एपीआई का निर्माण करने की आवश्यकता थी और एक्सप्रेस.जेएस की तुलना में अधिक हल्के वजन वाले ढांचे की तलाश थी जो संभवतः अवांछित सुविधाओं से बचा जाता है और आरईएसटी एपीआई के निर्माण के लिए कस्टम-निर्मित ढांचे की तरह काम करेगा। उसी मामले के लिए अपने इंट्रो से बहाल करने की सिफारिश की जाती है।
पढ़ना क्यों बहाल करने और व्यक्त नहीं का उपयोग करें? ऐसा लग रहा था कि पुनर्स्थापना एक अच्छा विकल्प है।
लेकिन आश्चर्य तब हुआ जब मैंने दोनों को एक लोड के साथ आज़माया।
मैंने रिस्टिफाई पर एक नमूना REST एपीआई बनाया और प्रति सेकंड 1000 अनुरोधों के साथ इसे बाढ़ दिया। मेरे लिए आश्चर्य की बात है कि थोड़ी देर के बाद मार्ग ने जवाब देना शुरू नहीं किया। एक्सप्रेस पर निर्मित एक ही ऐप। सभी को संभाला।
मैं वर्तमान में एपीआई के माध्यम से लोड को लागू कर रहा हूं
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 के भार के साथ खिलाया जाता है, तो यह 1015 req.s तक केवल 1 सेकंड में प्राप्त करना बंद कर देता है और फिर कुछ भी नहीं करता है। अर्थात। आने वाले अनुरोधों की गिनती के लिए लागू काउंटर मैं 1015 के बाद वेतन वृद्धि रोक दिया।
जब भी 100 reqs के भार के साथ खिलाया। प्रति सेकंड यह 1015 तक प्राप्त हुआ और उसके बाद गैर उत्तरदायी हो गया।