Rails 大家是如何实现读写分离的,我的想目中有 2 个数据库。

shangrenzhidao · 2014年08月19日 · 最后由 shangrenzhidao 回复于 2014年08月20日 · 3601 次阅读

大家是如何实现读写分离的,我的项目中有 2 个数据库,我想使用 octopus,但是同一开发环境下好像只能指定一个库,有没有使用过的,求帮助

为啥要读写分离,没感觉这么做好处在哪,同步数据实在是非常讨厌的一件事阿。楼主你能回答我的问题么?

同步确实讨厌,一旦出现故障数据不同步了就。。。,可以使用其他的方法来提高性能。

使用 octopus 单独建立一个 module,里面放置 db 相关类
rails 项目引用这个 module 就可以了
不使用 rails 自身的 ActiveRecord 配置

#2 楼 @debugger 数据不同步直接在凌晨三点停掉数据库,把主数据库文件直接 copy 到从数据库就行了。

最好的方案是在主服务器内网建个从服务器,这台从服务器出问题的概率极小,然后把这台从服务器的数据 copy 到其它服务器就行了,都不用停主服务器。

@wudixiaotie @debugger @fbsender @Peter 我这个需求很特殊可以说是很奇葩,情况是这样的,我这个项目的数据库是国外数据库的一个 slave,也就是说我只能从这个库里读,但是不许写,我老板要求我把这个项目做成一个展示系统,我希望把数据写入另外一个库中,这样就保证页面上总是国外库中最新的数据,而用户要输入一些数据会被写到另外的库中。是不是很奇葩?或者有没有其他的解决方案?

#4 楼 @Peter 你这运维要求太低了,居然要停掉数据库,太可怕了。而且有的数据库文件非常庞大,不是你一会儿 copy 就可以完成的。

#5 楼 @shangrenzhidao 能不能叫老的那个数据库系统提供 api 给你访问,你这边不要直接读数据库。

不同的 model 根据读写需求配置不同的数据库连接参数

#8 楼 @fbsender 嗯,好我去试试吧

需要 登录 后方可回复, 如果你还没有账号请 注册新账号