在定义的命名空间下,rules
、props
和 metadata
节点以 YAML 格式存储配置,可通过修改节点来实现对于配置的动态管理。
nodes
存储数据库访问对象运行节点,用于区分不同数据库访问实例。
statistics
存储系统表中的数据记录。
namespace
├──rules # 全局规则配置
├ ├──transaction
├ ├ ├──active_version
├ ├ ├──versions
├ ├ ├ ├──0
├──props # 属性配置
├ ├──active_verison
├ ├──versions
├ ├ ├──0
├──metadata # Metadata 配置
├ ├──${databaseName}
├ ├ ├──data_sources
├ ├ ├ ├──units # 存储单元结构配置
├ ├ ├ ├ ├──${dataSourceName}
├ ├ ├ ├ ├ ├──active_verison # 激活版本
├ ├ ├ ├ ├ ├──versions # 版本号
├ ├ ├ ├ ├ ├ ├──0
├ ├ ├ ├ ├──...
├ ├ ├ ├──nodes # 存储节点结构配置
├ ├ ├ ├ ├──${dataSourceName}
├ ├ ├ ├ ├ ├──active_verison # 激活版本
├ ├ ├ ├ ├ ├──versions # 版本号
├ ├ ├ ├ ├ ├ ├──0
├ ├ ├ ├ ├──...
├ ├ ├──schemas # Schema 列表
├ ├ ├ ├──${schemaName}
├ ├ ├ ├ ├──tables # 表结构配置
├ ├ ├ ├ ├ ├──${tableName}
├ ├ ├ ├ ├ ├ ├──active_verison # 激活版本
├ ├ ├ ├ ├ ├ ├──versions # 版本号
├ ├ ├ ├ ├ ├ ├ ├──0
├ ├ ├ ├ ├ ├──...
├ ├ ├ ├ ├──views # 视图结构配置
├ ├ ├ ├ ├ ├──${viewName}
├ ├ ├ ├ ├ ├ ├──active_verison # 激活版本
├ ├ ├ ├ ├ ├ ├──versions # 版本号
├ ├ ├ ├ ├ ├ ├ ├──0
├ ├ ├ ├ ├ ├──...
├ ├ ├──rules
├ ├ ├ ├──sharding
├ ├ ├ ├ ├──algorithms
├ ├ ├ ├ ├ ├──${algorithmName} # algorithm 名称
├ ├ ├ ├ ├ ├ ├──active_verison # 激活版本
├ ├ ├ ├ ├ ├ ├──versions # 版本号
├ ├ ├ ├ ├ ├ ├ ├──0
├ ├ ├ ├ ├ ├──...
├ ├ ├ ├ ├──key_generators
├ ├ ├ ├ ├ ├──${keyGeneratorName} # keyGenerator名称
├ ├ ├ ├ ├ ├ ├──active_verison # 激活版本
├ ├ ├ ├ ├ ├ ├──versions # 版本号
├ ├ ├ ├ ├ ├ ├ ├──0
├ ├ ├ ├ ├ ├──...
├ ├ ├ ├ ├──tables
├ ├ ├ ├ ├ ├──${tableName} # 逻辑表名称
├ ├ ├ ├ ├ ├ ├──active_verison # 激活版本
├ ├ ├ ├ ├ ├ ├──versions # 版本号
├ ├ ├ ├ ├ ├ ├ ├──0
├ ├ ├ ├ ├ ├──...
├──nodes
├ ├──compute_nodes
├ ├ ├──online
├ ├ ├ ├──proxy
├ ├ ├ ├ ├──UUID # Proxy 实例唯一标识
├ ├ ├ ├ ├──....
├ ├ ├ ├──jdbc
├ ├ ├ ├ ├──UUID # JDBC 实例唯一标识
├ ├ ├ ├ ├──....
├ ├ ├──status
├ ├ ├ ├──UUID
├ ├ ├ ├──....
├ ├ ├──worker_id
├ ├ ├ ├──UUID
├ ├ ├ ├──....
├ ├ ├──show_process_list_trigger
├ ├ ├ ├──process_id:UUID
├ ├ ├ ├──....
├ ├ ├──labels
├ ├ ├ ├──UUID
├ ├ ├ ├──....
├ ├──qualified_data_sources
├ ├ ├──${databaseName.groupName.dataSourceName}
├ ├ ├──${databaseName.groupName.dataSourceName}
├──statistics
├ ├──shardingsphere
├ ├ ├──schemas
├ ├ ├ ├──shardingsphere
├ ├ ├ ├ ├──tables # 系统表
├ ├ ├ ├ ├ ├──sharding_table_statistics # 分片统计表数据
├ ├ ├ ├ ├ ├ ├──8a2dcb0d97c3d86ef77b3d4651a1d7d0 # md5
├ ├ ├ ├ ├ ├──cluster_information # 集群信息表
全局规则配置,事务配置。
transaction:
defaultType: XA
providerType: Atomikos
属性配置,详情请参见配置手册。
kernel-executor-size: 20
sql-show: true
数据库连接池的,不同数据库连接池属性自适配(例如:DBCP,C3P0,Druid,HikariCP)。
ds_0:
initializationFailTimeout: 1
validationTimeout: 5000
maxLifetime: 1800000
leakDetectionThreshold: 0
minimumIdle: 1
password: root
idleTimeout: 60000
jdbcUrl: jdbc:mysql://127.0.0.1:3306/ds_0?serverTimezone=UTC&useSSL=false
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
maximumPoolSize: 50
connectionTimeout: 30000
username: root
poolName: HikariPool-1
数据库连接池的,不同数据库连接池属性自适配(例如:HikariCP)。
ds_0:
initializationFailTimeout: 1
validationTimeout: 5000
maxLifetime: 1800000
leakDetectionThreshold: 0
minimumIdle: 1
password: root
idleTimeout: 60000
jdbcUrl: jdbc:mysql://127.0.0.1:3306/ds_0?serverTimezone=UTC&useSSL=false
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
maximumPoolSize: 50
connectionTimeout: 30000
username: root
poolName: HikariPool-1
分片规则配置。
actualDataNodes: ds_${0..1}.t_order_${0..1}
auditStrategy:
allowHintDisable: true
auditorNames:
- t_order_dml_sharding_conditions_0
databaseStrategy:
standard:
shardingAlgorithmName: t_order_database_inline
shardingColumn: user_id
keyGenerateStrategy:
column: another_id
keyGeneratorName: t_order_snowflake
logicTable: t_order
tableStrategy:
standard:
shardingAlgorithmName: t_order_table_inline
shardingColumn: order_id
表结构配置,每个表使用单独节点存储。
name: t_order # 表名
columns: # 列
id: # 列名
caseSensitive: false
dataType: 0
generated: false
name: id
primaryKey: trues
order_id:
caseSensitive: false
dataType: 0
generated: false
name: order_id
primaryKey: false
indexs: # 索引
t_user_order_id_index: # 索引名
name: t_user_order_id_index
数据库访问对象运行实例信息,子节点是当前运行实例的标识。 运行实例标识使用 UUID 生成,每次启动重新生成。 运行实例标识均为临时节点,当实例上线时注册,下线时自动清理。 注册中心监控这些节点的变化来治理运行中实例对数据库的访问等。
可以治理读写分离从库,可动态禁用。