Spring AOP实现Mysql数据库主从切换(一主多从)

设置数据库主从切换的原因:数据库中经常发生的是“读多写少”,这样读操作对数据库压力比较大,通过采用数据库集群方案, 
一个数据库是主库,负责写;其他为从库,负责读,从而实现读写分离增大数据库的容错率。 
那么,对数据库的要求是: 
1. 读库和写库的数据一致; 
2. 写数据必须写到写库; 
3. 读数据必须到读库;

 

Spring AOP实现Mysql数据库主从切换的过程:在进入Service之前,使用AOP来做出判断,是使用写库还是读库,判断依据可以根据方法名判断,比如说以"update", "insert", "delete", "save"开头的就走写库,其他的走读库。

Spring AOP实现Mysql数据库主从切换(一主多从)_第1张图片

Spring AOP实现Mysql数据库主从切换(一主多从)_第2张图片

 实现主从(一主多从)分离:

Spring AOP实现Mysql数据库主从切换(一主多从)_第3张图片

首先配置主从数据库

Spring AOP实现Mysql数据库主从切换(一主多从)_第4张图片

主程序启动过程中,通过配置文件将主从数据库的URL以及用户名密码加载到内存中:

Spring AOP实现Mysql数据库主从切换(一主多从)_第5张图片

AOP切入点的实现:

Spring AOP实现Mysql数据库主从切换(一主多从)_第6张图片

 Spring AOP实现Mysql数据库主从切换(一主多从)_第7张图片

保证每个线程用到的是自己的数据源,使用ThreadLocal来防止并发带来的问题:

Spring AOP实现Mysql数据库主从切换(一主多从)_第8张图片

Spring AOP实现Mysql数据库主从切换(一主多从)_第9张图片

对数据库的主从切换进行调试,最好是分别使用SELECT,UPDATE来调试:

Spring AOP实现Mysql数据库主从切换(一主多从)_第10张图片

Spring AOP实现Mysql数据库主从切换(一主多从)_第11张图片

Spring AOP实现Mysql数据库主从切换(一主多从)_第12张图片

下面的代码是一主多从配置文件的详细解释,而与一主一从的区别在于,一主一从的配置都在数据源配置中完成:

参考链接:https://blog.csdn.net/zbw18297786698/article/details/54343188




    

    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
    

    
    
        
            
                
                
            
        
        
    

    
    
        
        
         
        
            
                classpath:mybatis/restaurant/*.xml
            
        
    

    
    
        
        
    

 
    
    
        
    
    

    
    
    
        
            
            
        
    

 

 

 

你可能感兴趣的:(Java)