最近有个springmvc+ibatis项目需要做mysql读写分离,目前查询到以下几个方案
1.应用层.
通过spring管理datasource的route,由aop或程序控制读写数据源.
2.中间件.
中间件维护主从数据关系,对应用层提供统一访问接口.完全解除程序耦合
3.mysql驱动
ReplicationDriver提供主从库访问的驱动,看了下原代码是保持了多个数据源的链接并根据readOnly true/false来选择数据源.相当于应用层解决方案的一个现有实现,耦合程度更低,扩展性更弱.并且貌似不能使用其他驱动.
目前比较倾向于中间件解决,求教一下对于诸如(写 读 写)这样的事务处理能否解决,有无其它影响程序结构的问题?
TDDL(Taobao Distributed Data Layer)是分布式数据库访问引擎。它的作用是将sql路由到正确的分库、分表中去执行,并将执行结果进行汇总、返回。上层可以像单库单表一样使用数据源,无需知道分布式数据库的细节。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。