具体来说,我在谈论MySQL Master-Slave(s) Replication
. 据我了解,我的所有读取都应该来自一个从属设备(或多个隐藏在负载均衡器后面的从属设备),而我所有的写入都应该直接发送到主控。
我该怎么做node.js
?我正在使用MySQL Active Record包进行数据库查询,但我认为它本身并不支持它。我想我可以破解包裹并遇到某种if is write-query, then use db1
情况,但我想知道是否有更简单的方法。
具体来说,我在谈论MySQL Master-Slave(s) Replication
. 据我了解,我的所有读取都应该来自一个从属设备(或多个隐藏在负载均衡器后面的从属设备),而我所有的写入都应该直接发送到主控。
我该怎么做node.js
?我正在使用MySQL Active Record包进行数据库查询,但我认为它本身并不支持它。我想我可以破解包裹并遇到某种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被广泛使用并开箱即用地支持这一点。