数据分片

配置项说明

  1. spring.shardingsphere.datasource.names= # 省略数据源配置,请参考使用手册
  2. # 标准分片表配置
  3. spring.shardingsphere.rules.sharding.tables.<table-name>.actual-data-nodes= # 由数据源名 + 表名组成,以小数点分隔。多个表以逗号分隔,支持inline表达式。缺省表示使用已知数据源与逻辑表名称生成数据节点,用于广播表(即每个库中都需要一个同样的表用于关联查询,多为字典表)或只分库不分表且所有库的表结构完全一致的情况
  4. # 分库策略,缺省表示使用默认分库策略,以下的分片策略只能选其一
  5. # 用于单分片键的标准分片场景
  6. spring.shardingsphere.rules.sharding.tables.<table-name>.database-strategy.standard.sharding-column= # 分片列名称
  7. spring.shardingsphere.rules.sharding.tables.<table-name>.database-strategy.standard.sharding-algorithm-name= # 分片算法名称
  8. # 用于多分片键的复合分片场景
  9. spring.shardingsphere.rules.sharding.tables.<table-name>.database-strategy.complex.sharding-columns= # 分片列名称,多个列以逗号分隔
  10. spring.shardingsphere.rules.sharding.tables.<table-name>.database-strategy.complex.sharding-algorithm-name= # 分片算法名称
  11. # 用于Hint 的分片策略
  12. spring.shardingsphere.rules.sharding.tables.<table-name>.database-strategy.hint.sharding-algorithm-name= # 分片算法名称
  13. # 分表策略,同分库策略
  14. spring.shardingsphere.rules.sharding.tables.<table-name>.table-strategy.xxx= # 省略
  15. # 自动分片表配置
  16. spring.shardingsphere.rules.sharding.auto-tables.<auto-table-name>.actual-data-sources= # 数据源名
  17. spring.shardingsphere.rules.sharding.auto-tables.<auto-table-name>.sharding-strategy.standard.sharding-column= # 分片列名称
  18. spring.shardingsphere.rules.sharding.auto-tables.<auto-table-name>.sharding-strategy.standard.sharding-algorithm= # 自动分片算法名称
  19. # 分布式序列策略配置
  20. spring.shardingsphere.rules.sharding.tables.<table-name>.key-generate-strategy.column= # 分布式序列列名称
  21. spring.shardingsphere.rules.sharding.tables.<table-name>.key-generate-strategy.key-generator-name= # 分布式序列算法名称
  22. spring.shardingsphere.rules.sharding.binding-tables[0]= # 绑定表规则列表
  23. spring.shardingsphere.rules.sharding.binding-tables[1]= # 绑定表规则列表
  24. spring.shardingsphere.rules.sharding.binding-tables[x]= # 绑定表规则列表
  25. spring.shardingsphere.rules.sharding.broadcast-tables[0]= # 广播表规则列表
  26. spring.shardingsphere.rules.sharding.broadcast-tables[1]= # 广播表规则列表
  27. spring.shardingsphere.rules.sharding.broadcast-tables[x]= # 广播表规则列表
  28. spring.shardingsphere.sharding.default-database-strategy.xxx= # 默认数据库分片策略
  29. spring.shardingsphere.sharding.default-table-strategy.xxx= # 默认表分片策略
  30. spring.shardingsphere.sharding.default-key-generate-strategy.xxx= # 默认分布式序列策略
  31. spring.shardingsphere.sharding.default-sharding-column= # 默认分片列名称
  32. # 分片算法配置
  33. spring.shardingsphere.rules.sharding.sharding-algorithms.<sharding-algorithm-name>.type= # 分片算法类型
  34. spring.shardingsphere.rules.sharding.sharding-algorithms.<sharding-algorithm-name>.props.xxx=# 分片算法属性配置
  35. # 分布式序列算法配置
  36. spring.shardingsphere.rules.sharding.key-generators.<key-generate-algorithm-name>.type= # 分布式序列算法类型
  37. spring.shardingsphere.rules.sharding.key-generators.<key-generate-algorithm-name>.props.xxx= # 分布式序列算法属性配置

算法类型的详情,请参见内置分片算法列表内置分布式序列算法列表

注意事项

行表达式标识符可以使用 ${...}$->{...},但前者与 Spring 本身的属性文件占位符冲突,因此在 Spring 环境中使用行表达式标识符建议使用 $->{...}