diff --git a/document/cn/content/06-sharding-jdbc/configuration/config-java.md b/document/cn/content/06-sharding-jdbc/configuration/config-java.md index 998bd53cc26797cf71ea629c7b627bf4b87fa1c4..29013615db51a138fc43e1455393476079787328 100644 --- a/document/cn/content/06-sharding-jdbc/configuration/config-java.md +++ b/document/cn/content/06-sharding-jdbc/configuration/config-java.md @@ -169,8 +169,8 @@ weight = 1 | ------------------ | ------------------------ | -------------- | | dataSourceMap | Map\ | 数据源配置 | | shardingRuleConfig | ShardingRuleConfiguration | 数据分片配置规则 | -| configMap (?) | Map\ | 配置映射关系 | -| props (?) | Properties | 相关属性配置 | +| props (?) | Properties | 属性配置 | +| configMap (?) | Map\ | 用户自定义配置 | #### ShardingRuleConfiguration @@ -184,21 +184,21 @@ weight = 1 | defaultDatabaseShardingStrategyConfig (?) | ShardingStrategyConfiguration | 默认分库策略 | | defaultTableShardingStrategyConfig (?) | ShardingStrategyConfiguration | 默认分表策略 | | defaultKeyGenerator (?) | KeyGenerator | 默认自增列值生成器,缺省使用io.shardingjdbc.core.keygen.DefaultKeyGenerator | -| masterSlaveRuleConfigs (?) | Collection\ | 读写分离规则,不填写表示不使用读写分离 | +| masterSlaveRuleConfigs (?) | Collection\ | 读写分离规则,缺省表示不使用读写分离 | #### TableRuleConfiguration 表分片规则配置对象。 -| *名称* | *数据类型* | *说明* | -| ---------------------------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------- | -| logicTable | String | 逻辑表名称 | +| *名称* | *数据类型* | *说明* | +| ---------------------------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| logicTable | String | 逻辑表名称 | | actualDataNodes (?) | String | 由数据源名 + 表名组成,以小数点分隔。多个表以逗号分隔,支持inline表达式。缺省表示使用已知数据源与逻辑表名称生成数据节点。用于广播表(即每个库中都需要一个同样的表用于关联查询,多为字典表)或只分库不分表且所有库的表结构完全一致的情况 | -| databaseShardingStrategyConfig (?) | ShardingStrategyConfiguration | 分库策略,不填写表示使用默认分库策略 | -| tableShardingStrategyConfig (?) | ShardingStrategyConfiguration | 分表策略,不填写表示使用默认分表策略 | -| logicIndex (?) | String | 逻辑索引名称,对于分表的Oracle/PostgreSQL数据库中DROP INDEX XXX语句,需要通过配置逻辑索引名称定位所执行SQL的真实分表 | -| keyGeneratorColumnName (?) | String | 自增列名称,不填写表示不使用自增主键生成器 | -| keyGenerator (?) | KeyGenerator | 自增列值生成器,如果填写了keyGeneratorColumnName,不填写keyGenerator,表示使用默认自增主键生成器 | +| databaseShardingStrategyConfig (?) | ShardingStrategyConfiguration | 分库策略,缺省表示使用默认分库策略 | +| tableShardingStrategyConfig (?) | ShardingStrategyConfiguration | 分表策略,缺省表示使用默认分表策略 | +| logicIndex (?) | String | 逻辑索引名称,对于分表的Oracle/PostgreSQL数据库中DROP INDEX XXX语句,需要通过配置逻辑索引名称定位所执行SQL的真实分表 | +| keyGeneratorColumnName (?) | String | 自增列名称,缺省表示不使用自增主键生成器 | +| keyGenerator (?) | KeyGenerator | 自增列值生成器,缺省表示使用默认自增主键生成器 | #### StandardShardingStrategyConfiguration @@ -263,7 +263,7 @@ ShardingStrategyConfiguration的实现类,用于配置不分片的策略。 | --------------------- | ---------------------------- | ------------------ | | dataSourceMap | Map\ | 数据源与其名称的映射 | | masterSlaveRuleConfig | MasterSlaveRuleConfiguration | 读写分离规则 | -| configMap (?) | Map\ | 配置映射关系 | +| configMap (?) | Map\ | 用户自定义配置 | #### MasterSlaveRuleConfiguration diff --git a/document/cn/content/06-sharding-jdbc/configuration/config-spring-boot.md b/document/cn/content/06-sharding-jdbc/configuration/config-spring-boot.md index 8862485baea8549ee1b726116bfd885e6ffd4761..b5c379cb4c72c2343bbea2f75f796893e9ebd880 100644 --- a/document/cn/content/06-sharding-jdbc/configuration/config-spring-boot.md +++ b/document/cn/content/06-sharding-jdbc/configuration/config-spring-boot.md @@ -221,7 +221,7 @@ sharding.jdbc.datasource..xxx= #数据库连接池的其它属 sharding.jdbc.config.sharding.tables..actual-data-nodes= #由数据源名 + 表名组成,以小数点分隔。多个表以逗号分隔,支持inline表达式。缺省表示使用已知数据源与逻辑表名称生成数据节点。用于广播表(即每个库中都需要一个同样的表用于关联查询,多为字典表)或只分库不分表且所有库的表结构完全一致的情况 -#分库策略,不填写表示使用默认分库策略,以下的分片策略只能选其一 +#分库策略,缺省表示使用默认分库策略,以下的分片策略只能选其一 #用于单分片键的标准分片场景 sharding.jdbc.config.sharding.tables..database-strategy.standard.sharding-column= #分片列名称 @@ -242,8 +242,8 @@ sharding.jdbc.config.sharding.tables..database-strategy.hint.a #分表策略,同分库策略 sharding.jdbc.config.sharding.tables..table-strategy.xxx= #省略 -sharding.jdbc.config.sharding.tables..key-generator-column-name= #自增列名称,不填写表示不使用自增主键生成器 -sharding.jdbc.config.sharding.tables..key-generator-class= #自增列值生成器类名称。该类需提供无参数的构造器 +sharding.jdbc.config.sharding.tables..key-generator-column-name= #自增列名称,缺省表示不使用自增主键生成器 +sharding.jdbc.config.sharding.tables..key-generator-class= #自增列值生成器类名称,缺省表示使用默认自增列值生成器。该类需提供无参数的构造器 sharding.jdbc.config.sharding.tables..logic-index= #逻辑索引名称,对于分表的Oracle/PostgreSQL数据库中DROP INDEX XXX语句,需要通过配置逻辑索引名称定位所执行SQL的真实分表 diff --git a/document/cn/content/06-sharding-jdbc/configuration/config-spring-namespace.md b/document/cn/content/06-sharding-jdbc/configuration/config-spring-namespace.md index ad563383cfff2c861888de596fcd835d94126020..0b0681934a9e4e5cb5e6ef2b81d602ee4ac838c2 100644 --- a/document/cn/content/06-sharding-jdbc/configuration/config-spring-namespace.md +++ b/document/cn/content/06-sharding-jdbc/configuration/config-spring-namespace.md @@ -4,21 +4,13 @@ title = "Spring命名空间配置" weight = 4 +++ -## Spring命名空间配置 +## 注意事项 -### 引入maven依赖 +行表达式标识符可以使用`$->{...}`或`$->{...}`,但前者与Spring本身的属性文件占位符冲突,因此在Spring环境中使用行表达式标识符建议使用`$->{...}`。 -```xml - - io.shardingjdbc - sharding-jdbc-core-spring-namespace - ${latest.release.version} - -``` - -### 配置示例 +## 配置示例 -#### 数据分片 +### 数据分片 ```xml @@ -37,7 +29,7 @@ weight = 4 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> - + @@ -54,20 +46,20 @@ weight = 4 - + - - - - - + + + + + - - - - - + + + + + @@ -77,171 +69,17 @@ weight = 4 - + - - + + ``` -##### 标签说明 - -##### 分库分表 - -##### \ - -| *名称* | *类型* | *数据类型* | *必填* | *说明* | -| ----------------------------- | ------------ | --------- | ------ | -------------- | -| id | 属性 | String | 是 | Spring Bean ID | -| sharding-rule | 标签 | - | 是 | 分片规则 | -| config-map? | 标签 | - | 否 | 配置映射关系| -| props? | 标签 | - | 否 | 相关属性配置 | - -##### \ - -| *名称* | *类型* | *数据类型* | *必填* | *说明* | -| ----------------------------- | ------------ | ---------- | ------ | --------------------------------------------------------------------- | -| data-source-names | 属性 | String | 是 | 数据源Bean列表,需要配置所有需要被Sharding-JDBC管理的数据源BEAN ID(包括默认数据源),多个Bean以逗号分隔 | -| default-data-source-name? | 属性 | String | 否 | 默认数据源名称,未配置分片规则的表将通过默认数据源定位 | -| default-database-strategy-ref? | 属性 | String | 否 | 默认分库策略,对应\中的策略id,不填则使用不分库的策略 | -| default-table-strategy-ref? | 属性 | String | 否 | 默认分表策略,对应\中的策略id,不填则使用不分表的策略 | -| default-key-generator? | 属性 | String | 否 |默认自增列生成策略 | -| table-rules | 标签 | - | 是 | 分片规则列表 | -| binding-table-rules? | 标签 | - | 否| 绑定表规则| - -##### \ - -| *名称* | *类型* | *数据类型* | *必填* | *说明* | -| ----------------------------- | ----------- | ---------- | ------ | ------- | -| table-rule+ | 标签 | - | 是 | 分片规则 | - -##### \ - -| *名称* | *类型* | *数据类型* | *必填* | *说明* | -| -------------------- | ------------ | ---------- | ------ | ------- | -| logic-table | 属性 | String | 是 | 逻辑表名 | -| actual-data-nodes? | 属性 | String | 否 | 真实数据节点,由数据源名(读写分离引用中的id属性) + 表名组成,以小数点分隔。多个表以逗号分隔,支持inline表达式。不填写表示将为现有已知的数据源 + 逻辑表名称生成真实数据节点。用于广播表(即每个库中都需要一个同样的表用于关联查询,多为字典表)或只分库不分表且所有库的表结构完全一致的情况。| -| database-strategy-ref? | 属性 | String | 否 | 分库策略,对应\中的策略id,不填则使用\配置的default-database-strategy-ref | -| table-strategy-ref? | 属性 | String | 否 | 分表策略,对应\中的略id,不填则使用\配置的default-table-strategy-ref | -| logic-index? | 属性 | String | 否 | 逻辑索引名称,对于分表的Oracle/PostgreSQL数据库中DROP INDEX XXX语句,需要通过配置逻辑索引名称定位所执行SQL的真实分表 | -| generate-key-column-name? | 属性| String | 否 | 自增列名| -| key-generator? | 属性 | String | 否| 自增列生成策略| - -##### \ - -| *名称* | *类型* | *数据类型* | *必填* | *说明* | -| ----------------------------- | ----------- | --------- | ------ | ------- | -| binding-table-rule+ | 标签 | - | 是 | 绑定规则 | - -##### \ - -| *名称* | *类型* | *数据类型* | *必填* | *说明* | -| ----------------------------- | ------------ | ---------- | ------ | ------------------------ | -| logic-tables | 属性 | String | 是 | 逻辑表名,多个表名以逗号分隔 | - -##### \ - -标准分片策略,用于单分片键的场景 - -| *名称* | *类型* | *数据类型* | *必填* | *说明* | -| ----------------------------- | ------------ | ---------- | ------ | --------------------------------- | -| id | 属性 | String | 是 | Spring Bean ID | -| sharding-column | 属性 | String | 是 | 分片列名 | -| precise-algorithm-ref | 属性 | String | 是 | 精确的分片算法Bean引用,用于=和IN。 | -| range-algorithm-ref? | 属性 | String | 否 | 范围的分片算法Bean引用,用于BETWEEN。 | - - -##### \ - -复合分片策略,用于多分片键的场景 - -| *名称* | *类型* | *数据类型* | *必填* | *说明* | -| ----------------------------- | ------------ | ---------- | ------ | ---------------------- | -| id | 属性 | String | 是 | Spring Bean ID | -| sharding-columns | 属性 | String | 是 | 分片列名,多个列以逗号分隔 | -| algorithm-ref | 属性 | String | 是 | 分片算法Bean引用 | - -##### \ - -inline表达式分片策略 - -| *名称* | *类型* | *数据类型* | *必填* | *说明* | -| ----------------------------- | ------------ | ---------- | ------ | ------------ | -| id | 属性 | String | 是 | Spring Bean ID | -| sharding-column | 属性 | String | 是 | 分片列名 | -| algorithm-expression | 属性 | String | 是 | 分片算法表达式 | - -##### \ - -Hint方式分片策略 - -| *名称* | *类型* | *数据类型* | *必填* | *说明* | -| ----------------------------- | ------------ | ---------- | ------ | -------------- | -| id | 属性 | String | 是 | Spring Bean ID | -| algorithm-ref | 属性 | String | 是 | 分片算法Bean引用 | - -##### \ - -不分片的策略 - -| *名称* | *类型* | *数据类型* | *必填* | *说明* | -| ----------------------------- | ------------ | ---------- | ------ | --------------------------------------------------- | -| id | 属性 | String | 是 | Spring Bean ID | - -##### \ - -| *名称* | *类型* | *数据类型* | *必填* | *说明* | -| ------------------------------------ | ------------ | ---------- | ----- | ----------------------------------- | -| sql.show | 属性 | boolean | 是 | 是否开启SQL显示,默认为false不开启 | -| executor.size? | 属性 | int | 否 | 最大工作线程数量 | - -##### \ - -##### 读写分离 - -##### \ - - -| *名称* | *类型* | *数据类型* | *必填* | *说明* | -| ----------------------------- | ------------ | --------- | ------ | ---------------------------------------- | -| id | 属性 | String | 是 | Spring Bean ID | -| master-data-source-name | 属性 | String | 是 | 主库数据源Bean ID | -| slave-data-source-names | 属性 | String | 是 | 从库数据源Bean列表,多个Bean以逗号分隔 | -| strategy-ref? | 属性 | String | 否 | 主从库复杂策略Bean ID,可以使用自定义复杂策略 | -| strategy-type? | 属性 | String | 否 | 主从库复杂策略类型
可选值:ROUND_ROBIN, RANDOM
默认值:ROUND_ROBIN | -| config-map? | 标签 | - | 否 | 配置映射关系| - -##### \ - -##### Spring格式特别说明 -如需使用inline表达式,需配置ignore-unresolvable为true,否则placeholder会把inline表达式当成属性key值导致出错. - - -##### 分片算法表达式语法说明 - -##### inline表达式特别说明 -${begin..end} 表示范围区间 - -${[unit1, unit2, unitX]} 表示枚举值 - -inline表达式中连续多个${...}表达式,整个inline最终的结果将会根据每个子表达式的结果进行笛卡尔组合,例如正式表inline表达式如下: -```groovy -dbtbl_${['online', 'offline']}_${1..3} -``` -最终会解析为dbtbl_online_1,dbtbl_online_2,dbtbl_online_3,dbtbl_offline_1,dbtbl_offline_2和dbtbl_offline_3这6张表。 - -##### 字符串内嵌groovy代码 -表达式本质上是一段字符串,字符串中使用${}来嵌入groovy代码。 - -```groovy -data_source_${id % 2 + 1} -``` - -上面的表达式中data_source_是字符串前缀,id % 2 + 1是groovy代码。 -#### 读写分离 +### 读写分离 ```xml @@ -260,7 +98,7 @@ data_source_${id % 2 + 1} http://shardingjdbc.io/schema/shardingjdbc/masterslave http://shardingjdbc.io/schema/shardingjdbc/masterslave/master-slave.xsd"> - + @@ -277,44 +115,36 @@ data_source_${id % 2 + 1} - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - + ``` -##### 使用Hint强制路由主库示例 - -```java -HintManager hintManager = HintManager.getInstance(); -hintManager.setMasterRouteOnly(); -// 继续JDBC操作 -``` - -#### 分库分表 + 读写分离 +### 数据分片 + 读写分离 ```xml @@ -336,7 +166,7 @@ hintManager.setMasterRouteOnly(); http://shardingjdbc.io/schema/shardingjdbc/masterslave http://shardingjdbc.io/schema/shardingjdbc/masterslave/master-slave.xsd"> - + @@ -353,243 +183,321 @@ hintManager.setMasterRouteOnly(); - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - + + - - - + + + - + - - + + - - ``` -#### 编排治理 +### 使用Zookeeper的数据治理 -##### Zookeeper配置示例 ```xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:sharding="http://shardingjdbc.io/schema/shardingjdbc/orchestration/sharding" + xmlns:master-slave="http://shardingjdbc.io/schema/shardingjdbc/orchestration/masterslave" + xmlns:reg="http://shardingjdbc.io/schema/shardingjdbc/orchestration/reg" + xsi:schemaLocation="http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd + http://shardingjdbc.io/schema/shardingjdbc/orchestration/reg + http://shardingjdbc.io/schema/shardingjdbc/orchestration/reg/reg.xsd + http://shardingjdbc.io/schema/shardingjdbc/orchestration/sharding + http://shardingjdbc.io/schema/shardingjdbc/orchestration/sharding/sharding.xsd + http://shardingjdbc.io/schema/shardingjdbc/orchestration/masterslave + http://shardingjdbc.io/schema/shardingjdbc/orchestration/masterslave/master-slave.xsd"> - + + + ``` -##### Zookeeper标签说明 +### 使用Etcd的数据治理 -##### \ - -| 属性名 | 类型 | 是否必填 | 缺省值 | 描述 | -| ------------------------------- |:-------|:-------|:------|:---------------------------------------------------------------------------------------------------| -| id | String | 是 | | 注册中心在Spring容器中的主键 | -| server-lists | String | 是 | | 连接Zookeeper服务器的列表
包括IP地址和端口号
多个地址用逗号分隔
如: host1:2181,host2:2181 | -| namespace | String | 是 | | Zookeeper的命名空间 | -| base-sleep-time-milliseconds | int | 否 | 1000 | 等待重试的间隔时间的初始值
单位:毫秒 | -| max-sleep-time-milliseconds | int | 否 | 3000 | 等待重试的间隔时间的最大值
单位:毫秒 | -| max-retries | int | 否 | 3 | 最大重试次数 | -| session-timeout-milliseconds | int | 否 | 60000 | 会话超时时间
单位:毫秒 | -| connection-timeout-milliseconds | int | 否 | 15000 | 连接超时时间
单位:毫秒 | -| digest | String | 否 | | 连接Zookeeper的权限令牌
缺省为不需要权限验证 | - -##### Etcd配置示例 ```xml - + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:sharding="http://shardingjdbc.io/schema/shardingjdbc/orchestration/sharding" + xmlns:master-slave="http://shardingjdbc.io/schema/shardingjdbc/orchestration/masterslave" + xmlns:reg="http://shardingjdbc.io/schema/shardingjdbc/orchestration/reg" + xsi:schemaLocation="http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd + http://shardingjdbc.io/schema/shardingjdbc/orchestration/reg + http://shardingjdbc.io/schema/shardingjdbc/orchestration/reg/reg.xsd + http://shardingjdbc.io/schema/shardingjdbc/orchestration/sharding + http://shardingjdbc.io/schema/shardingjdbc/orchestration/sharding/sharding.xsd + http://shardingjdbc.io/schema/shardingjdbc/orchestration/masterslave + http://shardingjdbc.io/schema/shardingjdbc/orchestration/masterslave/master-slave.xsd"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - - + + + ``` -##### Etcd标签说明 +## 配置项说明 + +### 分库分表 -##### \ +命名空间:http://shardingjdbc.io/schema/shardingjdbc/sharding/sharding.xsd -| 属性名 | 类型 | 是否必填 | 缺省值 | 描述 | -| ------------------------------- |:-------|:-------|:------|:---------------------------------------------------------------------------------------------------| -| id | String | 是 | | 注册中心在Spring容器中的主键 | -| server-lists | String | 是 | | 连接Etcd服务器的列表
包括IP地址和端口号
多个地址用逗号分隔
如: http://host1:2379,http://host2:2379 | -| time-to-live-seconds | int | 否 | 60 | 临时节点存活时间
单位:秒 | -| timeout-milliseconds | int | 否 | 500 | 每次请求的超时时间
单位:毫秒 | -| max-retries | int | 否 | 3 | 每次请求的最大重试次数 | -| retry-interval-milliseconds | int | 否 | 200 | 重试间隔时间
单位:毫秒 | +#### \ +| *名称* | *类型* | *说明* | +| -------------- | ----- | -------------- | +| id | 属性 | Spring Bean Id | +| sharding-rule | 标签 | 数据分片配置规则 | +| props (?) | 标签 | 属性配置 | +| config-map (?) | 标签 | 用户自定义配置 | -#### 柔性事务 +#### \ -##### 事务管理器配置项 +| *名称* | *类型* | *说明* | +| --------------------------------- | ----- | ------------------------------------------------------------------------- | +| data-source-names | 属性 | 数据源Bean列表,多个Bean以逗号分隔 | +| table-rules | 标签 | 表分片规则配置对象 | +| binding-table-rules (?) | 标签 | 绑定表规则列表 | +| default-data-source-name (?) | 属性 | 未配置分片规则的表将通过默认数据源定位 | +| default-database-strategy-ref (?) | 属性 | 默认数据库分片策略,对应\中的策略Id,缺省表示不分库 | +| default-table-strategy-ref (?) | 属性 | 默认表分片策略,对应\中的策略Id,缺省表示不分表 | +| default-key-generator (?) | 属性 | 默认自增列值生成器,缺省使用`io.shardingjdbc.core.keygen.DefaultKeyGenerator` | + +#### \ + +| *名称* | *类型* | *说明* | +| -------------- | ----- | --------------- | +| table-rule (+) | 标签 | 表分片规则配置对象 | + +#### \ + +| *名称* | *类型* | *说明* | +| ---------------------------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| logic-table | 属性 | 逻辑表名称 | +| actual-data-nodes (?) | 属性 | 由数据源名 + 表名组成,以小数点分隔。多个表以逗号分隔,支持inline表达式。缺省表示使用已知数据源与逻辑表名称生成数据节点。用于广播表(即每个库中都需要一个同样的表用于关联查询,多为字典表)或只分库不分表且所有库的表结构完全一致的情况 | +| database-strategy-ref (?) | 属性 | 数据库分片策略,对应\中的策略Id,缺省表示使用\配置的默认数据库分片策略 | +| table-strategy-ref (?) | 属性 | 表分片策略,对应\中的策略Id,缺省表示使用\配置的默认表分片策略 | +| generate-key-column-name (?) | 属性 | 自增列名称,缺省表示不使用自增主键生成器 | +| key-generator (?) | 属性 | 自增列值生成器,缺省表示使用默认自增列值生成器 | +| logic-index (?) | 属性 | 逻辑索引名称,对于分表的Oracle/PostgreSQL数据库中DROP INDEX XXX语句,需要通过配置逻辑索引名称定位所执行SQL的真实分表 | + +#### \ + +| *名称* | *类型* | *说明* | +| ---------------------- | ----- | -------- | +| binding-table-rule (+) | 标签 | 绑定表规则 | + +#### \ + +| *名称* | *类型* | *说明* | +| ------------ | ----- | ----------------------------- | +| logic-tables | 属性 | 绑定规则的逻辑表名,多表以逗号分隔 | + +#### \ + +| *名称* | *类型* | *说明* | +| ----------------------- | ------ | -------------------------- | +| id | 属性 | Spring Bean Id | +| sharding-column | 属性 | 分片列名称 | +| precise-algorithm-ref | 属性 | 精确分片算法引用,用于=和IN | +| range-algorithm-ref (?) | 属性 | 范围分片算法引用,用于BETWEEN | + +#### \ + +| *名称* | *类型* | *说明* | +| --------------- | ------ | ------------------------ | +| id | 属性 | Spring Bean Id | +| sharding-columns | 属性 | 分片列名称,多个列以逗号分隔 | +| algorithm-ref | 属性 | 复合分片算法引用 | + +#### \ + +| *名称* | *类型* | *说明* | +| -------------------- | ----- | ------------------------------ | +| id | 属性 | Spring Bean Id | +| sharding-column | 属性 | 分片列名称 | +| algorithm-expression | 属性 | 分片算法行表达式,需符合groovy语法 | + +#### \ + +| *名称* | *类型* | *说明* | +| ------------- | ----- | ------------- | +| id | 属性 | Spring Bean Id | +| algorithm-ref | 属性 | Hint分片算法 | + +#### \ + +| *名称* | *类型* | *说明* | +| ----- | ------ | -------------- | +| id | 属性 | Spring Bean Id | + +#### \ + +| *名称* | *类型* | *说明* | +| ----------------- | ----- | --------------------------- | +| sql.show (?) | 属性 | 是否开启SQL显示,默认值: false | +| executor.size (?) | 属性 | 工作线程数量,默认值: CPU核数 | + +#### \ + +### 读写分离 + +命名空间:http://shardingjdbc.io/schema/shardingjdbc/masterslave/master-slave.xsd + +#### \ + +| *名称* | *类型* | *说明* | +| ----------------------- | ----- | -------------------------------------------- | +| id | 属性 | Spring Bean Id | +| master-data-source-name | 属性 | 主库数据源Bean Id | +| slave-data-source-names | 属性 | 从库数据源Bean Id列表,多个Bean以逗号分隔 | +| strategy-ref (?) | 属性 | 从库负载均衡算法引用 | +| strategy-type (?) | 属性 | 从库负载均衡算法类型,可选值:ROUND_ROBIN,RANDOM | +| config-map (?) | 标签 | 用户自定义配置 | + +#### \ + +### 数据分片 + 数据治理 + +命名空间:http://shardingjdbc.io/schema/shardingjdbc/orchestration/sharding/sharding.xsd + +#### \ + +| *名称* | *类型* | *说明* | +| ------------------- | ----- | ---------------------------------------------------------------------- | +| id | 属性 | 配置同数据分片 | +| sharding-rule | 标签 | 配置同数据分片 | +| props (?) | 标签 | 配置同数据分片 | +| config-map (?) | 标签 | 配置同数据分片 | +| registry-center-ref | 属性 | 数据治理注册中心Bean引用 | +| overwrite | 属性 | 本地配置是否覆盖注册中心配置。如果可覆盖,每次启动都以本地配置为准。缺省为不覆盖 | + +### 读写分离 + 数据治理 + +命名空间:http://shardingjdbc.io/schema/shardingjdbc/orchestration/masterslave/master-slave.xsd + +#### \ + +| *名称* | *类型* | *说明* | +| ----------------------- | ----- | ---------------------- | +| id | 属性 | 配置同读写分离 | +| master-data-source-name | 属性 | 配置同数据分片 | +| slave-data-source-names | 属性 | 配置同数据分片 | +| strategy-ref (?) | 属性 | 配置同数据分片 | +| strategy-type (?) | 属性 | 配置同数据分片 | +| config-map (?) | 标签 | 配置同数据分片 | +| registry-center-ref | 属性 | 配置同数据分片 + 数据治理 | +| overwrite | 属性 | 配置同数据分片 + 数据治理 | + +### 数据治理注册中心 + +命名空间:http://shardingjdbc.io/schema/shardingjdbc/orchestration/reg/reg.xsd + +#### \ + +| *名称* | *类型* | *说明* | +| ----------------------------------- | ----- | ------------------------------------------------------------------------------------ | +| id | 属性 | 注册中心的Spring Bean Id | +| server-lists | 属性 | 连接Zookeeper服务器的列表。包括IP地址和端口号。多个地址用逗号分隔。如: host1:2181,host2:2181 | +| namespace | 属性 | Zookeeper的命名空间 | +| base-sleep-time-milliseconds (?) | 属性 | 等待重试的间隔时间的初始毫秒数,默认1000毫秒 | +| max-sleep-time-milliseconds (?) | 属性 | 等待重试的间隔时间的最大毫秒数,默认3000毫秒 | +| max-retries (?) | 属性 | 连接失败后的最大重试次数,默认3次 | +| session-timeout-milliseconds (?) | 属性 | 会话超时毫秒数,默认60000毫秒 | +| connection-timeout-milliseconds (?) | 属性 | 连接超时毫秒数,默认15000毫秒 | +| digest (?) | 属性 | 连接Zookeeper的权限令牌。缺省为不需要权限验证 | + +#### \ + +| *名称* | *类型* | *说明* | +| ------------------------------- | ----- | --------------------------------------------------------------------------------------------- | +| id | 属性 | 注册中心的Spring Bean Id | +| server-lists | 属性 | 连接Etcd服务器的列表。包括IP地址和端口号。多个地址用逗号分隔。如: http://host1:2379,http://host2:2379 | +| time-to-live-seconds (?) | 属性 | 临时节点存活秒数,默认60秒 | +| timeout-milliseconds (?) | 属性 | 请求超时毫秒数,默认500毫秒 | +| max-retries (?) | 属性 | 重试间隔毫秒数,默认200毫秒 | +| retry-interval-milliseconds (?) | 属性 | 请求失败后的最大重试次数,默认3次 | + +### 柔性事务 + +#### SoftTransactionConfiguration配置 -##### SoftTransactionConfiguration配置 用于配置事务管理器。 +| *名称* | *类型* | *必填* | *默认值* | *说明* | +| ---------------------------------- | ------------------------------------------ | ------ | ------- | ----------------------------------------------------------------------------------------- | +| shardingDataSource | ShardingDataSource | 是 | | 事务管理器管理的数据源 | +| syncMaxDeliveryTryTimes | int | 否 | 3 | 同步的事务送达的最大尝试次数 | +| storageType | enum | 否 | RDB | 事务日志存储类型。可选值: RDB,MEMORY。使用RDB类型将自动建表 | +| transactionLogDataSource | DataSource | 否 | null | 存储事务日志的数据源,如果storageType为RDB则必填 | +| bestEffortsDeliveryJobConfiguration| NestedBestEffortsDeliveryJobConfiguration | 否 | null | 最大努力送达型内嵌异步作业配置对象。如需使用,请参考NestedBestEffortsDeliveryJobConfiguration配置 | -| *名称* | *类型* | *必填* | *默认值* | *说明* | -| ---------------------------------- | ------------------------------------------ | ------ | --------- | ------------------------------------------------------------------------------------------- | -| shardingDataSource | ShardingDataSource | 是 | | 事务管理器管理的数据源 | -| syncMaxDeliveryTryTimes | int | 否 | 3 | 同步的事务送达的最大尝试次数 | -| storageType | enum | 否 | RDB | 事务日志存储类型。可选值: RDB,MEMORY。使用RDB类型将自动建表 | -| transactionLogDataSource | DataSource | 否 | null | 存储事务日志的数据源,如果storageType为RDB则必填 | -| bestEffortsDeliveryJobConfiguration| NestedBestEffortsDeliveryJobConfiguration | 否 | null | 最大努力送达型内嵌异步作业配置对象。如需使用,请参考NestedBestEffortsDeliveryJobConfiguration配置 | +#### NestedBestEffortsDeliveryJobConfiguration配置 (仅开发环境) -##### NestedBestEffortsDeliveryJobConfiguration配置 (仅开发环境) 用于配置内嵌的异步作业,仅用于开发环境。生产环境应使用独立部署的作业版本。 -| *名称* | *类型* | *必填* | *默认值* | *说明* | -| ---------------------------------- | --------------------------- | ------ | ------------------------ | --------------------------------------------------------------- | -| zookeeperPort | int | 否 | 4181 | 内嵌的注册中心端口号 | -| zookeeperDataDir | String | 否 | target/test_zk_data/nano/| 内嵌的注册中心的数据存放目录 | -| asyncMaxDeliveryTryTimes | int | 否 | 3 | 异步的事务送达的最大尝试次数 | -| asyncMaxDeliveryTryDelayMillis | long | 否 | 60000 | 执行异步送达事务的延迟毫秒数,早于此间隔时间的入库事务才会被异步作业执行 | - +| *名称* | *类型* | *必填* | *默认值* | *说明* | +| ---------------------------------- | --------------------------- | ------ | ------------------------- | --------------------------------------------------------------- | +| zookeeperPort | int | 否 | 4181 | 内嵌的注册中心端口号 | +| zookeeperDataDir | String | 否 | target/test_zk_data/nano/ | 内嵌的注册中心的数据存放目录 | +| asyncMaxDeliveryTryTimes | int | 否 | 3 | 异步的事务送达的最大尝试次数 | +| asyncMaxDeliveryTryDelayMillis | long | 否 | 60000 | 执行异步送达事务的延迟毫秒数,早于此间隔时间的入库事务才会被异步作业执行 | diff --git a/document/cn/content/06-sharding-jdbc/configuration/config-yaml.md b/document/cn/content/06-sharding-jdbc/configuration/config-yaml.md index a9887fcfecf062fa67a579872a62f88970a4d525..b1225b6ac4249c5de03367d396a69b1b3bcd52d0 100644 --- a/document/cn/content/06-sharding-jdbc/configuration/config-yaml.md +++ b/document/cn/content/06-sharding-jdbc/configuration/config-yaml.md @@ -124,7 +124,7 @@ shardingRule: : #逻辑表名称 actualDataNodes: #由数据源名 + 表名组成,以小数点分隔。多个表以逗号分隔,支持inline表达式。缺省表示使用已知数据源与逻辑表名称生成数据节点。用于广播表(即每个库中都需要一个同样的表用于关联查询,多为字典表)或只分库不分表且所有库的表结构完全一致的情况 - databaseStrategy: #分库策略,不填写表示使用默认分库策略,以下的分片策略只能选其一 + databaseStrategy: #分库策略,缺省表示使用默认分库策略,以下的分片策略只能选其一 standard: #用于单分片键的标准分片场景 shardingColumn: #分片列名称 preciseAlgorithmClassName: #精确分片算法类名称,用于=和IN。该类需提供无参数构造器 @@ -140,7 +140,7 @@ shardingRule: none: #不分片 tableStrategy: #分表策略,同分库策略 - keyGeneratorColumnName: #自增列名称,不填写表示不使用自增主键生成器 + keyGeneratorColumnName: #自增列名称,缺省表示不使用自增主键生成器 keyGeneratorClass: #自增列值生成器类名称。该类需提供无参数的构造器 logicIndex: #逻辑索引名称,对于分表的Oracle/PostgreSQL数据库中DROP INDEX XXX语句,需要通过配置逻辑索引名称定位所执行SQL的真实分表