2013-04-08 86 views
4

具体来说,我说的是MySQL Master-Slave(s) Replication。据我了解,我所有的读取都应该发生在从机(或多个从机隐藏在负载均衡器后面)并且我所有的写入都直接写入主机。使用node.js,我如何写入一个MySQL数据库并从另一个读取?

我该怎么做node.js?我为我的数据库查询使用了MySQL Active Record包,我不认为它本地支持它。我认为我可以破解包裹,并有if is write-query, then use db1类型的情况,但我想知道是否有更简单的方法。

+0

是否有某些原因,您不想创建两个适配器? – pauljz 2013-04-08 22:33:22

+0

你是什么意思创建两个适配器? – Shamoon 2013-04-08 22:33:36

回答

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被广泛使用并支持开箱即用。

相关问题