介绍

Sharding Jdbc是一个用于实现数据库读写分离的框架。


依赖

Sharding Jdbc依赖坐标:

1<dependency>
2    <groupId>org.apache.shardingsphere</groupId>
3    <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
4    <version>4.0.0-RC1</version>
5</dependency>

配置

配置application.yaml

 1spring:
 2  sharding-sphere:  # 旧版为 shardingsphere
 3    datasource:     # 数据源有多个,用名称来进行区分
 4      names:
 5        master,slave  # 名称可以自定义,多个名称用','分隔
 6      # 主数据源
 7      master:
 8        type: com.alibaba.druid.pool.DruidDataSource
 9        driver-class-name: com.mysql.cj.jdbc.Driver
10        url: jdbc:mysql://localhost:3316/reggie?characterEncoding=utf-8
11        username: root
12        password: 123456
13      # 从数据源
14      slave:
15        type: com.alibaba.druid.pool.DruidDataSource
16        driver-class-name: com.mysql.cj.jdbc.Driver
17        url: jdbc:mysql://localhost:3326/reggie?characterEncoding=utf-8
18        username: root
19        password: 123456
20    masters-lave: # 课程中为 masterslave
21      # 读写分离配置
22      load-balance-algorithm-type: round_robin  # 定义从库负载均衡策略策略,round_robin为轮询
23      # 最终的数据源名称(即Bean的名称)
24      name: dataSource
25      # 主库数据源名称
26      master-data-source-name: master
27      # 从库数据源名称列表,多个用','分隔
28      slave-data-source-names: slave
29    props:
30      sql:
31        show: true # 开启SQL显示,默认false
32  main:
33    # 允许Bean定义覆盖,否则会与其他数据源的Bean发生冲突(如Druid)
34    allow-bean-definition-overriding: true