項目中,利用atlas對mysql數據庫進行了讀寫分離。
當時配置了去從庫讀數據。
當用數據庫工具連接代理測試時,一切正常。
當在項目中使用框架mybatis連數據庫時,卻都直接去主庫讀寫數據了。
自己寫個main方法 用jdbc連接也是正常的。一用mybatis框架就不正常了,難道atlas對mybatis不支持嗎?
於是各種百度,谷歌。。。
最後發現原因:如果有事務存在的話,atlas就強制走主庫。而這個方法類上偏偏添加了事務@Transactional
解決辦法在方法上加上@Transactional(propagation=Propagation.NOT_SUPPORTED)即可。