代码:https://download.youkuaiyun.com/download/qq_22049773/12595620
1、AbstractRoutingDataSource
(1)、AbstractRoutingDataSource注册多数据源,AOP实现读写分离、读写源自动切换
(2)、一主多从,多个从库的负载均衡策略可以自定义。(双主多从、故障转移因mysql环境为一主一从,所以代码未实现,不难实现,需要实现的代码位置已标记)
(3)、非注解方式,业务代码侵入基本为零
(4)、懒事务处理方式,service层使用@Transactional注解的方法或者类只能走默认库(写库)
(5)、AOP根据Dao层的方法名来判断读写库的切换,超出判断规则的只能走默认库(写库)
2、sharding-jdbc
(1)、实现多种模式的读写分离
(2)、支持事务
(3)、配置中心化
(4)、存储过程不能正常解析
项目中用的到表SQL:
CREATE TABLE `users` ( `id` int(32) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `age` int(3) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;