shardingsphere读写分离配置

注:

如果是升级之前的单库单表,要将之前的 数据库接池 druid-spring-boot-starter 注释掉,换成 druid,否则无法连接数据库。

原因:

  1. 因为数据连接池的starter(比如druid)可能会先加载并且其创建一个默认数据源,这将会使得sharding-jdbc创建数据源时发生冲突。
  2. 解决办法为,去掉数据连接池的starter即可,sharing-jdbc自己会创建数据连接池。

即:



  com.alibaba
  druid-spring-boot-starter
  1.2.16

改成:


    com.alibaba
    druid
    1.2.16

另:数据库驱动类型如果不是用druid,也可以用zaxxer,这样引入的maven包是:


  com.zaxxer
  HikariCP
  ${hikaricp.version}

读写分离yaml配置

spring
  #读写分离配置
  shardingsphere:
    #数据源配置,可配置多个data_source_name
    datasource:
      #names: ds1,ds2,ds3
      names: master,slave1,slave2
      #master ds1数据库连接信息
      master:
        #数据库驱动类型
        #type: com.zaxxer.hikari.HikariDataSource
        type: com.alibaba.druid.pool.DruidDataSource
        #数据库驱动类名
        driver-class-name: com.mysql.cj.jdbc.Driver
        #数据库url连接
        url: jdbc:mysql://47.99.110.140:3306/jpay?useUnicode=true
        #数据库用户名
        username: root
        #数据库密码
        password: root@2022
        maxPoolSize: 100
        minPoolSize: 5
      #slave1 ds2数据库连接信息
      slave1:
        #数据库驱动类型
        #        type: com.zaxxer.hikari.HikariDataSource
        type: com.alibaba.druid.pool.DruidDataSource
        #数据库驱动类名
        driver-class-name: com.mysql.cj.jdbc.Driver
        #数据库url连接
        url: jdbc:mysql://47.99.110.141:3306/jpay?useUnicode=true
        #数据库用户名
        username: root
        #数据库密码
        password: root@2022
        maxPoolSize: 100
        minPoolSize: 5
      #slave2 ds3数据库连接信息
      slave2:
        #数据库驱动类型
#        type: com.zaxxer.hikari.HikariDataSource
        type: com.alibaba.druid.pool.DruidDataSource
        #数据库驱动类名
        driver-class-name: com.mysql.cj.jdbc.Driver
        #数据库url连接
        url: jdbc:mysql://47.99.110.142:3306/jpay?useUnicode=true
        #数据库用户名
        username: root
        #数据库密码
        password: root@2022
        maxPoolSize: 100
        minPoolSize: 5
    mode:
      # 内存模式,元数据保存在当前进程中
      type: Memory
    #属性配置
    props:
      sql:
        #是否开启SQL显示,默认值: false
        show: true
    #读写分离规则
    masterSlaveRule:
      #读写分离数据源名称
      name: ms
      #主库数据源名称
      master-data-source-name: master
      #从库数据源名称列表
      slave-data-source-names: slave1,slave2
      #从库负载均衡算法类型,可选值:ROUND_ROBIN,RANDOM。若`loadBalanceAlgorithmClassName`存在则忽略该配置
      loadBalanceAlgorithmType: ROUND_ROBIN
        #读写分离负载算法的属性配置
#        props:
    sharding:
      #配置默认数据源ds1 默认数据源,主要用于写
      default-data-source-name: master
      rules:
        readwrite-splitting: # 读写分离规则
          data-sources: # 数据源配置
            random: # 这个名字随便起
              type: Static                               # 静态类型
              load-balancer-name: round_robin            # 负载均衡算法名字
              props:
                write-data-source-name: master           # 写数据源
                read-data-source-names: slave1,slave2    # 读数据源
          load-balancers: # 负载均衡配置
            round_robin: # 跟上面负载均衡算法的名字对应
              type: round_robin

注:把以上的ip , 用户名,账号,密码 改成你的即可。

你可能感兴趣的:(数据库,java,spring,shardingsphere,读写分离)