Sharding-jdbc读写分离只走主库
·
最近刚学完Sharding-jdbc,配置完读写分离后,不管怎么测试,发现直走主库,但是在别的简单项目上测试又是没问题的,最后在我一通操作下,终于发现了问题:
@Transactional 这个注解!!! 是个事务注解
/**
* 读写分离:测试
*/
@Transactional
@Test
public void testSelectAll() {
List<User> users4 = userMapper.selectAll();
List<User> users5 = userMapper.selectAll();
List<User> users6 = userMapper.selectAll();
List<User> users7 = userMapper.selectAll();
List<User> users8 = userMapper.selectAll();
}
显而易见,当我们的操作方法中有@Transactional事务注解后,查询不会再走从库,所以操作都走主库!
当我们注掉@Transactional后,成功解决!

至于为什么Sharding-jdbc的事务为什么有这个特性我就暂时不做解释了,想要深入了解的同学去查查官方文档看看吧~
Apache ShardingSphere
https://shardingsphere.apache.org/这里还有个以前版本的网站
最后,希望大家都学有所成 !
更多推荐
https://shardingsphere.apache.org/document/5.1.1/cn/features/sharding/concept/inline-expression/
所有评论(0)