【发布时间】:2015-08-24 23:25:53
【问题描述】:
我已经使用 Aerospike Node.js 客户端一段时间了,我注意到如果我运行服务器超过两个小时,如果我对 Aerospike 数据库进行连接调用,我会得到以下信息错误:
ERROR(23159) [connect.cc:69] [Connect] - Connecting to Cluster Failed
在此之前,执行会顺利进行。我使用 Aerospike 和 Express 来存储和检索用户内容。这是我写的端点之一
app.get("/api/content/:id",function(req,res){
aero.client(aeroSec.generateConfig()).connect(function(err, db){
if(err.code != aero.status.AEROSPIKE_OK) return res.status(403).send();
var options = {};
options.filters = [filter.equal("secindex", req.params.id)];
var query = db.query("ns","posts",options);
var data;
var count = 0;
var s = query.execute();
s.on("data",function(rec){
data = rec;
});
s.on("error",function(err){
data = err;
});
s.on("end",function(){
db.close();
if(data == undefined) res.status(404).send("NOTHING FOUND");
else res.status(200).send(data);
});
});
});
为了全面披露,我不会查询不存在的索引。在 Aerospike 论坛中的搜索建议我从我的端点中注释掉 db.close(),这只会减慢问题并不能消除它。当我连接到托管在另一台服务器上的 Aerospike 数据库时,错误开始发生,因此我决定查询本地服务器,但在正常运行两个小时后发现同样的错误。
有人知道该怎么做吗?我真的很喜欢 Aerospike 作为数据库,但如果这些问题仍然存在,我将别无选择,只能转到另一个 NoSQL 数据库。
【问题讨论】: