我想我可以黑掉包,有一个
具体来说,我说的是MySQL Master-Slave(s) Replication
。根据我的理解,我所有的读操作都应该发生在一个从服务器(或隐藏在负载均衡器后面的多个从服务器)上,而我所有的写操作都应该直接发生在主服务器上。
我如何用node.js
做到这一点?我使用MySQL活动记录包为我的数据库查询,我不认为它支持它的原生。
if is write-query, then use db1
类型的情况,但我想知道是否有一个更简单的方法。
您可以像这样创建两个适配器:
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被广泛使用,并且开箱即用。