springboot 实现读写分离,分库分表 (二) 使用SHARDINGJDBC读写分离

上个博客讲了MYSQL的主从配置,主从数据库配好了以后

就可以实现读写分离了。

一般读写分离,主库做增删改等操作,

从库做查询操作。如果查询多的话,可以多做几天从库。

SHARDINGJDBC最开始是由当当网开始的一个开源项目。由于反响好

直接进入apache的孵化项目,更名为 SHARDINGSPHERE

GITHUB项目地址: https://github.com/apache/incubator-shardingsphere

下面是一些主要代码是说明

1,引入jar,注意这里springboot的版本不要太高,官网的例子是2.0.6.RELEASE

我用了springboot最新的版本,启动一致报错,bean冲突。主要如下。

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.0.6.RELEASE</version>
   <relativePath/>
</parent>
<dependency>
   <groupId>org.apache.shardingsphere</groupId>
   <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
   <version>4.0.0-RC1</version>
</dependency>

2,配置文件配置:

spring:
  shardingsphere:
    props:
      sql:
        show: true
    datasource:
      names: master,slave   #对应下面主从库
      master:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://192.168.89.129:3306/shrek-db?characterEncoding=utf-8
        username: root
        password: 123456
      slave:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://192.168.89.130:3306/shrek-db?characterEncoding=utf-8
        username: root
        password: 123456
    masterslave:
      load-balance-algorithm-type: round_robin  #负载 轮询,当你有多个从库或者主库时
      name: ms
      master-data-source-name: master           #设置主库
      slave-data-source-names: slave            #设置从库

很简单吧,就加了点代码,SHARDINGSPHERE会帮你自动切库,

当你做增删改时,会直接操作主库,

当你做查询操作时,会直接查询从库,这里数据库压力就可以平摊出来了

而我们一般的系统都是增删改少,查询多,就可以多设置几个从库,

下面是查询和增加效果切图

查询查从库,如下:

增加操作主库:如下

猜你喜欢

转载自blog.csdn.net/shrek11/article/details/102692817