mysql利用atlas进行读写分离时,一直走主库的问题

项目中,利用atlas对mysql数据库进行了读写分离。

当时配置了去从库读数据。

当用数据库工具连接代理测试时,一切正常。

当在项目中使用框架mybatis连数据库时,却都直接去主库读写数据了。

自己写个main方法 用jdbc连接也是正常的。一用mybatis框架就不正常了,难道atlas对mybatis不支持吗?

于是各种百度,谷歌。。。

最后发现原因:如果有事务存在的话,atlas就强制走主库。而这个方法类上偏偏添加了事务@Transactional

解决办法在方法上加上@Transactional(propagation=Propagation.NOT_SUPPORTED)即可。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-10 16:19:57

mysql利用atlas进行读写分离时,一直走主库的问题的相关文章

使用MySQL-Proxy读写分离时的注意事项

在动手操作前最好先安装好MySQL-Proxy,并配置好MySQL主从服务器.补充:新版MySQL已经内建支持 延迟问题 读写分离不能回避的问题之一就是延迟,可以考虑Google提供的SemiSyncReplicationDesign补丁. 端口问题 MySQL-Proxy缺省使用的是4040端口,如果你想透明的把3306端口的请求转发给4040的话,那么可以: iptables -t nat -I PREROUTING -s ! 127.0.0.1 -p tcp --dport 3306 -j

MySQL主从同步、读写分离配置步骤、问题解决笔记

根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记:       现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用.       为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master)           192.168.0.2 (Slave) MySQL Version:Ver 14.14 Distrib 5.1.48, for pc-linux-gnu (i6

使用Atlas实现读写分离

 Atlas实现读写分离 环境介绍: 试验机器4台: 192.168.0.41   Atlas 192.168.0.42   Master 192.168.0.43   Slave-1 192.168.0.44   Slave-2 4台机器均为RHEL 6.4 x86_64系统 [[email protected] ~]# uname -a Linux Nginx 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x

MySQL主从同步、读写分离配置步骤

现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master) 192.168.0.2 (Slave) MySQL Version:Ver 14.14 Distrib 5.1.48, for pc-linux-gnu (i686) using readline 5.1 1.登录Master服务器,修改my.cnf,添加如下内容: server-id = 1 //数据库ID号,

MySQL Proxy 实现MySQLDB 读写分离

一.简述 MySQL Proxy是一个处于你的client端和MySQL server端之间的简单程序,它可以监测.分析或改变它们的通信.它使用灵活,没有限制,常见的用途包括:负载平衡,故障.查询分析,查询过滤和修改等等. MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负 载平衡.对于应用来说,MySQL Proxy是完全透明的,应用

搭建mysql的主从复制和读写分离

搭建mysql的主从复制和读写分离   +--------+                          (write)        +--------+                    | client |                 +---------------------+| master |     +--------+|                   |                        +--------+|           |      

MySQL5.6基于GTID同步复制,与如何实现MySQL负载均衡、读写分离。

MySQL想必大家都不陌生,之前文章也有介绍同步复制与半同步复制,今天先来了解下什么是GTID. GTID(global transaction ID)全局事务ID,是由服务器的UUID+一段随机数事务ID. 特性:从服务器从主服务器复制过来的事务,GTID不变,也就是说一个事务在全局复制架构中的ID不变. 有什么用: 在MySQL集群中,当Master故障时,需要从Slave中挑选一个提升为Master可以基于GTID对比其他Slave来保证数据的一致性. MySQL主从同步如何配置数据过滤

【纯干货】Amoeba实现MySQL主从同步与读写分离

[纯干货]Amoeba实现MySQL主从同步与读写分离 一.简介 amoeba简介 Amoeba(变形虫)项目,该开源框架于2008年开始发布一款 Amoeba for Mysql软件.这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的 时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发.座落与 Client.DB Server(s)之间,对客户端透明.具有负载均衡.高可用性.SQL 过滤.读写分离.可路由相关的到目标数据库.可并发

生产环境实践Mysql5.7主从+Atlas实现读写分离

Mysql主从搭建 主从复制可以使MySQL数据库主服务器的主数据库,复制到一个或多个MySQL从服务器从数据库,默认情况下,复制异步; 根据配置,可以复制数据库中的所有数据库,选定的数据库或甚至选定的表.MySQL的工作方式是单进程多线程的方式,那么线程的多寡则会极大的影响到MySQL的效率,而在早期MySQL的主从都是由单线程进行的,使得主从复制除了相关的客观因素外还受到自身的影响:为此在MySQL的5.7版本中对多线程主从复制来进一步的改善,在MySQL 5.7中是按照逻辑时钟(类似CPU