看到两个方案
大家用过哪种方案?
看到楼主这个问题,我上网查了一下,发现解决方案不是很多。
master_slave_adapter 和 masochism 这个两个东西都几年没更新了。不知道是不是还能用。
后来仔细想了一下,这个实现起来应该不复杂,只要拦截一下 activerecord 的方法,在读操作和写操作时重新设置 connection,每次操作前都打开两个数据库连接,这个就不会产生切换 connection 带来的性能损耗。
关键就是读的方法太多,只能拦截那个底层的方法,我看了一下源码,activereocrd 的大多操作都在 ActiveRecord::Relation 和 ActiveRecord::FinderMethods,至于怎么搞,还没想到,还需要多看看源码。。
刚又看了下,好像直接拦截 connections 中的方法就可以了。