|
|
|
|
@ -1,47 +1,71 @@
|
|
|
|
|
# ====================== 系统运行模式配置 ======================
|
|
|
|
|
mode:
|
|
|
|
|
# 单机模式
|
|
|
|
|
# 系统运行模式:
|
|
|
|
|
# Standalone - 单机模式(适合小型应用)
|
|
|
|
|
# Cluster - 集群模式(适合分布式部署)
|
|
|
|
|
type: Standalone
|
|
|
|
|
# 元数据持久化
|
|
|
|
|
|
|
|
|
|
# 元数据存储配置(元数据指分片规则、数据源配置等系统信息)
|
|
|
|
|
repository:
|
|
|
|
|
# 数据库持久化
|
|
|
|
|
# 元数据存储方式:
|
|
|
|
|
# JDBC - 使用数据库存储元数据
|
|
|
|
|
# ZooKeeper - 使用ZooKeeper存储(适合集群模式)
|
|
|
|
|
type: JDBC
|
|
|
|
|
|
|
|
|
|
# 数据源配置
|
|
|
|
|
# ====================== 数据库连接配置 ======================
|
|
|
|
|
dataSources:
|
|
|
|
|
# 数据源名称(可以配置多个数据源)
|
|
|
|
|
ds_1:
|
|
|
|
|
# 数据源实现类(使用Hikari高性能连接池)
|
|
|
|
|
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
|
|
|
|
|
# 数据库驱动类
|
|
|
|
|
driverClassName: com.mysql.cj.jdbc.Driver
|
|
|
|
|
# 数据库连接URL
|
|
|
|
|
jdbcUrl: jdbc:mysql://localhost:3306/novel_plus?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
|
|
|
|
|
# 数据库用户名
|
|
|
|
|
username: root
|
|
|
|
|
# 数据库密码
|
|
|
|
|
password: test123456
|
|
|
|
|
# 规则配置
|
|
|
|
|
|
|
|
|
|
# ====================== 数据分片规则配置 ======================
|
|
|
|
|
rules:
|
|
|
|
|
# 规则1:单表规则(不进行分片的表)
|
|
|
|
|
- !SINGLE
|
|
|
|
|
tables:
|
|
|
|
|
# 匹配所有库的所有表(*.*)
|
|
|
|
|
# 表示这些表不使用分片,直接存储在默认数据源中
|
|
|
|
|
- "*.*"
|
|
|
|
|
|
|
|
|
|
# 规则2:分片规则(对特定表进行分片)
|
|
|
|
|
- !SHARDING
|
|
|
|
|
tables: # 数据分片规则配置
|
|
|
|
|
tables: # 需要分片的表配置
|
|
|
|
|
# 配置book_content表的分片规则
|
|
|
|
|
book_content:
|
|
|
|
|
# 分库策略,缺省表示使用默认分库策略
|
|
|
|
|
# 实际数据节点配置(数据存储位置)
|
|
|
|
|
# ds_${1} 表示数据源名称(这里只有ds_1)
|
|
|
|
|
# book_content${0..9} 表示10个分表(book_content0到book_content9)
|
|
|
|
|
actualDataNodes: ds_${1}.book_content${0..9}
|
|
|
|
|
|
|
|
|
|
# 分表策略
|
|
|
|
|
tableStrategy:
|
|
|
|
|
standard:
|
|
|
|
|
# 分片列名称
|
|
|
|
|
# 分片列(根据这个字段的值决定数据存储在哪个分表)
|
|
|
|
|
shardingColumn: index_id
|
|
|
|
|
# 分片算法名称
|
|
|
|
|
# 分片算法名称(下面会定义)
|
|
|
|
|
shardingAlgorithmName: bookContentSharding
|
|
|
|
|
|
|
|
|
|
# 分片算法定义
|
|
|
|
|
shardingAlgorithms:
|
|
|
|
|
# 算法名称:bookContentSharding
|
|
|
|
|
bookContentSharding:
|
|
|
|
|
# 行表达式分片算法,使用 Groovy 的表达式,提供对 SQL 语句中的 = 和 IN 的分片操作支持
|
|
|
|
|
# 算法类型:INLINE(行表达式分片算法)
|
|
|
|
|
type: INLINE
|
|
|
|
|
props:
|
|
|
|
|
# 分片算法的行表达式
|
|
|
|
|
# 分片算法表达式(Groovy语法)
|
|
|
|
|
# 根据index_id的值取模10,决定存储到哪个分表
|
|
|
|
|
algorithm-expression: book_content${index_id % 10}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ====================== 系统属性配置 ======================
|
|
|
|
|
props:
|
|
|
|
|
# 是否在日志中打印 SQL
|
|
|
|
|
sql-show: true
|
|
|
|
|
# 是否在日志中打印SQL语句(开发调试时非常有用)
|
|
|
|
|
sql-show: true
|