在我制作NodeJS HTTP服务器的冒险中,我从下面的代码开始。该服务器应该能够处理大约10,000个请求,这些请求都发生在同一秒或两秒内。
我想知道db.open
和db.connect
之间究竟有什么区别。 docs分别表示“初始化数据库连接”和“连接到数据库”,但这对我来说似乎是一回事。此外,他们都使用db.close()
来关闭连接。我应该使用一个吗?
var server = http.createServer(function (req, res) {
req.on('data', function(chunk) {
//Do some stuff here
});
req.on('end', function() {
//Do some stuff here
var db = new Db('test', new Server("111.111.11.111", 27017,{auto_reconnect: false}), {safe: true});
db.open(function(err, db) {
//Insert data into DB
db.close();
});
});
}); //End Http server
答案 0 :(得分:2)
首先尝试从请求中取出数据库连接,并将其保留为每个应用1。当所有客户想要结束他们的请求时,使用10k连接来混搭数据库不是一个好主意。据我所知,数据库连接池有限,所以这就是你的瓶颈和错误的原因。不幸的是,我现在无法给出这个好榜样。
至于“db.connect
”和“db.open
”差异主要在代码使用方面。更准确地说,这里是connect和open,正如您所看到的,连接正在使用连接字符串,其中open使用new DB
,需要new Server
声明才能工作。
哦,还有一件事,尝试使用更高级别的库进行mongoDB连接,例如mongoose(我不能以“很好的方式”粘贴链接,所以这里是:mongoosejs.com)