Spring Boot使用sharding-sphere 配置分库,读写分离。

10 篇文章 0 订阅
10 篇文章 0 订阅

使用的是分库分表利器——sharding-sphere 

本次配置的为一主两从的分库配置,所以需要先准备三个库。

 

pom.xml配置

引入sharding-sphere :

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

 

yml配置:


sharding:
  jdbc:
    datasource:
      names: master1,slave1,slave2 # 配置真实数据源
      master1: #主库配置
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://${static.ip}:3306/ctmdb?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false
        username: root
        password: *****
      slave1: #从数据库配置
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://${static.ip2}:3306/ctmdb?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false
        username: root
        password: *****
      slave2: #从数据库配置
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://${static.ip3}:3310/ctmdb?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false
        username: root
        password: *****
    config: # 配置读写分离
      masterslave: # 配置从库选择策略,提供轮询与随机,这里选择用轮询
        load-balance-algorithm-type: round_robin
        name: ctm
        master-data-source-name: master1
        slave-data-source-names: slave1,slave2
      props:
        sql:
          show: true # 开启SQL显示,默认值: false,注意:仅配置读写分离时不会打印日志
spring:
  main:
    allow-bean-definition-overriding: true

  正确配置之后,默认主库执行增删改, 从库根据我们配置的轮询策略 轮询执行查询操作。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值