基于aop 和 sharding-jdbc读写分离

1.   sharding-jdbc读写分离

是当当网开源 apache封装,引用只需修改配置文件,和加入pom

如下:yml中配置读写数据源

sharding:
  jdbc:
    datasource:
      names: ds0,ds1
      ds0:
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:sqlserver://192.168.10.11:1433;DatabaseName=ERP
        username: sa
        password: 
        driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
      ds1:
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:sqlserver://192.168.10.10:1433;DatabaseName=ERP
        username: sa
        password: 
        driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    config:
        masterslave:
          load-balance-algorithm-type: round_robin
          name: ms
          master-data-source-name: ds0
          slave-data-source-names: ds1
          props:
            sql:
              show:
                true

 

引入pom文件:

<dependency>
    <groupId>io.shardingsphere</groupId>
    <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
    <version>3.1.0</version>
</dependency>
<dependency>
    <groupId>io.shardingsphere</groupId>
    <artifactId>sharding-jdbc-spring-namespace</artifactId>
    <version>3.0.0</version>
</dependency>

 

强制路由,就是解决读写分离数据同步的问题,当查询由读库查询切换到写库读取

@GetMapping("getAll")
public Object getAll(){
    HintManager hintManager = HintManager.getInstance();
    hintManager.setMasterRouteOnly();
    List<User> all = userRepository.findAll();
    hintManager.close();
    return all;
}

 

第二种方案 是采用AOP方案 比较复杂

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值