У мене була вимога створити API REST в node.js і шукав більш легкий фреймворк, ніж express.js, який, ймовірно, уникає небажаних функцій і діяв би як створена на замовлення рамка для побудови API REST. Відмовитися від її введення рекомендується в тому ж випадку.
Читання Чому слід використовувати рестифікувати, а не висловлювати? здавалося, що відпочити - це хороший вибір.
Але сюрприз стався, коли я спробував обидва з вантажем.
Я зробив зразок REST API на Restify і залив його 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 п.к. він припинив обробку всього за 1 секунду, отримуючи до 1015 екв., і потім нічого не робив. тобто. лічильник, який я застосував для підрахунку вхідних запитів, припинив приріст після 1015 року.
при харчуванні з вантажем навіть 100 док. за секунду він отримував до 1015 і після цього не відповідав.