Такая проблема с node.js
Задача простая подключиться mongo, сделать insert или update отключиться.
Использую express.
Код взял из примера на gitHUB, нативный драйвер для mongodb.
app.get('/api/cnt/:pid/:blist',function(req,res,next){
MongoClient.connect('mongodb://127.0.0.1:27017/messager', function(err, db) {
//if(err) throw err;
var blist = '';
blist = req.params.blist ;
bl = blist.split(',');
var collection = db.collection('adv_cnt');
for(i=0;i<bl.length;i++)
{
collection.update({pid:req.params.pid,bid:bl[i]},{$inc:{cnt:1}}, {w:1}, function(err, result) {});
}
})
res.end("ok");
});
Код вобщем то рабочий.
Но когда решил проверить под нагрузкой , вывалилась ошибка подключния к монго.
Проверял вот таким скриптом, отправляя в цикле запросы curl - ом
#!/usr/bin/perl
use Time::HiRes;
for ($i=1;$i<=1000000;$i++)
{
$cmd="curl \"http://x.x.x.x:3000/api/newbanner/2/\"".$i;
#Time::HiRes::sleep (0.05);
system($cmd);
}
Нод падает между 5000 и 6000 инсертами .
Сделал задержку между запросами 0,05 сек 120 000 записей, полет нормальный.
Но как же заявленная нагрузка в 1 000 000 одновременных подключений?
Есть у кого нибудь мысли ? Хотелось бы на продакшене иметь 100% надежность.
Всем заранее спасибо за ответы !