具体来说,我在谈论MySQL Master-Slave(s) Replication
。根据我的理解,我的所有读取都应该从一个从站(或多个从站隐藏在负载均衡器后面)和我所有的写入直接发送到主站。
如何使用node.js
执行此操作?我正在使用MySQL Active Record包进行数据库查询,我不认为它本身支持它。我想我可以破解包裹并且有if is write-query, then use db1
类型的情况,但我想知道是否有更简单的方法。
答案 0 :(得分:3)
你可以像这样创建两个适配器:
var activeRecord = require('mysql-activerecord');
var readDB = new activeRecord.Adapter({
server: 'slave.db.com',
username: 'user',
password: 'pass',
database: 'db'
});
var writeDB = new activeRecord.Adapter({
server: 'master.db.com',
username: 'user',
password: 'pass',
database: 'db'
});
当您去做update
或其他写作查询时,请使用writeDB
;当你去select
使用readDB
时。
另一个选择是切换到支持此开箱即用的另一个ORM。我知道这不是一个很好的解决方案。例如Sequelize被广泛使用并且支持开箱即用。