spring:
shardingsphere:
props:
sql:
show: true # 是否开启SQL打印
sharding:
broadcast-tables: sys_dict_data,sys_dict_type # 广播表 也叫公共表,指所有的分片数据源中都存在的表,表结构和表中的数据在每个数据库中都完全一致.例如字典表.(broadcast-tables)
binding-tables[0]: t_emp,t_bonus
master-slave-rules:
ds0:
master-data-source-name: ds0
slave-data-source-names: ds0-slave
ds1:
master-data-source-name: ds1
slave-data-source-names: ds1-slave
ds2:
master-data-source-name: ds2
slave-data-source-names: ds2-slave
# 未配置分片规则的表 通过该配置的默认数据源寻找
default-data-source-name: ds2
default-database-strategy:
inline:
sharding-column: emp_id
algorithm-expression: ds$->{emp_id % 3}
tables:
t_emp: # 配置该表下的分库分表规则
key-generator:
column: id
type: SNOWFLAKE
actual-data-nodes: ds$->{0..2}.t_emp_$->{0..1} # 配置该表分库与分表之间的映射逻辑
# # 绑定表(binding-tables) 需要相同的[分库分片规则],因而此处 兼容t_bonus的分库分表规则
# database-strategy: # 配置分库规则
# inline:
# sharding-column: salary # 配置该表分库依据的字段
# algorithm-expression: ds$->{salary % 3} # 配置该表分库的策略
table-strategy: # 配置分表规则
inline:
sharding-column: emp_id # 配置该表分表依据的字段
algorithm-expression: t_emp_$->{emp_id % 2} # 配置该表分表的策
t_bonus:
key-generator:
column: id
type: SNOWFLAKE
actual-data-nodes: ds$->{0..2}.t_bonus_$->{0..1} # 配置该表分库与分表之间的映射逻辑
table-strategy: # 配置分表规则
inline:
sharding-column: emp_id # 配置该表分表依据的字段
algorithm-expression: t_bonus_$->{emp_id % 2} # 配置该表分表的策
datasource: # 数据源相关配置
names: ds0,ds1,ds2,ds0-slave,ds1-slave,ds2-slave
ds0:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://192.168.15.150:3306/ds0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
username: root
password: root
ds1:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://192.168.15.150:3306/ds1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
username: root
password: root
ds2:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://192.168.15.150:3306/ds2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
username: root
password: root
ds0-slave:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://192.168.15.151:3306/ds0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
username: root
password: root
ds1-slave:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://192.168.15.151:3306/ds1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
username: root
password: root
ds2-slave:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://192.168.15.151:3306/ds2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
username: root
password: root
sharding-jdbc 分库,分表,读写分离,绑定表,广播表,多数据源 关键配置项
最新推荐文章于 2024-06-20 11:16:30 发布