引言
这篇文章是在我们配置完mysql的主从之后,才能进行的。关于mysql的主从配置请看我的mysql分类中的文章。
开始
首先我们先基于springboot构建一个项目,这里我就不演示了。就以我的服务douyu-live-user-provider为例子
首先我们在application.yml 中配置
spring:
application:
name: douyu-live-user-provider
datasource:
driver-class-name: org.apache.shardingsphere.driver.ShardingSphereDriver
url: jdbc:shardingsphere:classpath:douyu-db-sharding.yaml
hikari:
pool-name: douyu-user-pool
minimum-idle: 150
maximum-pool-size: 300
connection-timeout: 4000
max-lifetime: 60000
douyu-db-sharding.yaml
dataSources:
user_master: ##新表,重建的分表
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
jdbcUrl: jdbc:mysql://127.0.0.1:3306/douyu_live_user?useUnicode=true&characterEncoding=utf8
username: root
password: root
user_slave0: ##新表,重建的分表
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
jdbcUrl: jdbc:mysql://127.0.0.1:3309/douyu_live_user?useUnicode=true&characterEncoding=utf8
username: root
password: root
rules:
- !READWRITE_SPLITTING
dataSources:
user_ds:
staticStrategy:
writeDataSourceName: user_master
readDataSourceNames:
- user_slave0
- !SINGLE
defaultDataSource: user_ds ## 不分表分分库的默认数据源
- !SHARDING
tables:
t_user:
actualDataNodes: user_ds.t_user_${(0..99).collect(){it.toString().padLeft(2,'0')}}
tableStrategy:
standard:
shardingColumn: user_id
shardingAlgorithmName: t_user-inline
shardingAlgorithms:
t_user-inline:
type: INLINE
props:
algorithm-expression: t_user_${(user_id %100).toString().padLeft(2,'0')}
props:
sql-show: true