Sharding-JDBC是一个用于实现分库分表的中间件,使用它可以实现数据库的主从读写分离,它适用性强,配置简单。
1.引入依赖
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.0.0-RC1</version>
</dependency>
2.在配置文件中添加配置
spring:
shardingsphere:
datasource:
names:
master1,slave1
master1:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.177.133:3306/dbName?characterEncoding=utf-8
username: root
password: root
slave1:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.177.133:3306/dbName?characterEncoding=utf-8
username: root
password: root
masterslave:
load-balance-algorithm-type: round_robin
name: dataSource
master-data-source-name: master1
slave-data-source-names: slave1
props:
sql:
show: true
这里的master1,slave1可以随便起,master1,slave1代表有两个数据源,记得上下名称需要保持一致;load-balance-algorithm-type: round_robin主要针对从库,若有多个从库,各个从库间负载均衡采用轮询方式,name: dataSource相当于是bean的名字,唯一标识;slave-data-source-names: slave1指定从库名,若由多个,逗号隔开即可。
3.在配置文件中配置允许数据源bean定义覆盖
spring:
main:
allow-bean-definition-overriding: true
加上述配置是防止项目启动时,shardingJDBC和Druid创建dataSource的bean对象时冲突,导致项目启动失败。
配置完毕后启动项目即可。