我有一个在群集中运行的节点应用程序和一个包含3个实例的mongo副本集。 应用程序使用本机mongodb驱动程序(https://www.npmjs.org/package/mongodb)。 当mongo实例因执行查询而失败(崩溃或连接问题)时,客户端会收到500错误。是否可以将失败的查询重定向到另一个mongo实例?
对不起我的英文)
答案 0 :(得分:-1)
如果主要崩溃,那么根据定义,它无法指向另一个辅助。您必须处理代码中的辅助端点。我没有使用mongodb本地,只是猫鼬,但是seudocode将是
var connection=new connection(primary server);
var query="{...}";
connection.runquery(query,function(err,response) {
if(err) {
console.log('Error, will retry with secondary');
var connection2=new connection(secondary server);
connection2.runquery(query,function(err2, response2) {
if(err2) {
console.log('Error, replica secondary is also down. OMG');
} else {
console.log(response2);
}
}
} else {
console.log(response);
}
});