Node.js 如何在nodeJS中重新连接到galera群集数据库
我正在编写一个应用程序,它连接到使用galera(多主主动/主动设置)群集的mariaDB数据库。 我希望我的应用程序在DB集群的一个节点关闭时继续处理 以下是我目前的代码:Node.js 如何在nodeJS中重新连接到galera群集数据库,node.js,mariadb,galera,Node.js,Mariadb,Galera,我正在编写一个应用程序,它连接到使用galera(多主主动/主动设置)群集的mariaDB数据库。 我希望我的应用程序在DB集群的一个节点关闭时继续处理 以下是我目前的代码: const mariadb=require('mariadb'); function getDB() { return new Promise(function(resolve,reject) { var pool = mariadb.createPoolCluster(); po
const mariadb=require('mariadb');
function getDB() {
return new Promise(function(resolve,reject) {
var pool = mariadb.createPoolCluster();
pool.add('node1', {
host : '127.0.0.1',
port: 3306,
database: 'myDB',
user : 'root',
password : ''
});
pool.add('node2', {
host : '127.0.0.1',
port: 3307,
database: 'myDB',
user : 'root',
password : ''
});
pool.getConnection(/.*/,"RR")
.then(function(connection) {
console.log('Database GALERA is connected!');
resolve(connection);
});
});
}
getDB()
.then(function(db) {
infiniteLoopFunction(db);
});
function infiniteLoopFunction(db) {
db.query('select now()',[],function (err, rows, fields) {
if(err) console.log(err);
console.log(rows);
setTimeout(function() { infiniteLoopFunction(db); } , 1000);
});
}
当我停止DB node1时,它不会转到node2。相反,我得到了一个“协议连接丢失”或其他类似的错误
如何检测节点1已关闭,并将连接(包括失败的连接)转到节点2
谢谢你的帮助