我在Node.JS中设置了一个API,使用Mongoose连接到Azure上的MongoDB。通过少量的调用,API便可以正常运行并且成功存储了所有数据。 但是,一旦增加流量,就会开始出现TimeOut连接错误。
我正在使用insertMany,因为每个有效负载可以具有多个记录,但是有效负载并不是特别大。我还提高了Azure集合的吞吐量,以确保它可以处理有效负载的大小(由于请求大小,在执行此操作之前这是错误的)。
我试图遍历数据以逐一添加到每个记录中,而不是insertMany,但是保存的结果不一致(即,它并不总是将每个3保存在每个有效负载中),但是这样做似乎避免了超时问题。
这是MongoDB连接的代码:
mongoose
.connect(db_url, {
useNewUrlParser: true
}).then(() => {
return next();
})
.catch(err => {
res.status(500).send({
status: 500,
message: "Internal server error"
});
mongoose.connection.close();
});
This is the code that is saving the data:
MODEL.insertMany(jsonData, function(err, results) {
if (err) {
console.error(err);
res.status(500).send({
status: 500,
message: "Internal server error"
});
} else {
res.status(200).send({
status: 200,
message: "Record(s) saved"
});
}
});
这是我遇到的错误:
{ Error: connect ETIMEDOUT
at Object._errnoException (util.js:992:11)
at _exceptionWithHostPort (util.js:1014:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1186:14)
code: 'ETIMEDOUT',
errno: 'ETIMEDOUT',
syscall: 'connect',
address: '',
port: }