哪位高手能讲下2种实现读写分离的区别?

CoderLeon 发布于 2015/10/31 09:11
阅读 556
收藏 4

mysql 读写分离很普遍了,1主多从。

最近研究了下实现方案,其他的mysql proxy,中间价什么就不讨论了。

目前,很多应用都是基于spring的AbstractRoutingDataSource抽象类来完成,具体就不展开了。

还有一种就是使用mysql自带的ReplicationDriver实现,简单的说就是一个包装类,封装了两个jdbc协议连接。

问题,哪个高可用,生产环境哪个合适?

加载中
0
alexgaoyh
alexgaoyh

最近也在玩读写分离,不过没有选取上述两种方案,感觉在某种程度上并不自由(多个丛库的情况下,是否是还需要更改代码?),便测试了在接口层次进行了读写分离(例如: IDemoReadService IDemoWriteSerivce 这种形式,业务层引入的数据源直接匹配主库或者丛库)····

仅供参考~~~

0
月影又无痕
月影又无痕
程序中根据sql判断,就可以了。
0
窮兄急惡
3年前玩过一种很挫的方案: 读/写采用不同的数据源;并规范dao的实现函数前缀~~~
0
Tuesday
Tuesday
读写sql语法判断的确非常被动... 
0
CoderLeon
CoderLeon

我现在就是通过spring的AbstractRoutingDataSource扩展,通过在service层前面aop,判断service方法名前缀,如find,get就只读库,否则add,create等就走主库。事务控制在service级别,自定义的aop拦截一定要比事务注解优先级高,否则事务先执行获取数据源的连接就是错误的

0
魔法刀客
魔法刀客
我的想法是,集成两件持久层框架(A,B),也通过AbstractRoutingDataSource来拓展。A只负责查,B负责C/U/D。
0
漂泊者及其影子
漂泊者及其影子
创建两个数据源,其中一个只读。
返回顶部
顶部