项目中。利用atlas对mysql数据库进行了读写分离。
当时配置了去从库读数据。
当用数据库工具连接代理測试时。一切正常。
当在项目中使用框架mybatis连数据库时,却都直接去主库读写数据了。
自己写个main方法 用jdbc连接也是正常的。
一用mybatis框架就不正常了,难道atlas对mybatis不支持吗?
于是各种百度,谷歌。
。。
最后发现原因:假设有事务存在的话,atlas就强制走主库。
而这种方法类上偏偏加入了事务@Transactional
解决的方法在方法上加上@Transactional(propagation=Propagation.NOT_SUPPORTED)就可以。