Skip to content

Commit

Permalink
for #98 update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
terrymanu committed Sep 1, 2017
1 parent 9c30b74 commit eab1f37
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 11 deletions.
22 changes: 17 additions & 5 deletions sharding-jdbc-doc/content/02-guide/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,10 +196,10 @@ props: 属性配置(可选)
| ----------------------------- | ------------ | --------- | ------ | -------------- |
| id | 属性 | String || Spring Bean ID |
| sharding-rule | 标签 | - || 分片规则 |
| binding-table-rules? | 标签 | - | | 绑定表规则 |
| default-database-strategy? | 标签 | - | | 默认分库策略 |
| default-table-strategy? | 标签 | - | | 默认分表策略 |
| props? | 标签 | - | | 相关属性配置 |
| binding-table-rules? | 标签 | - | | 绑定表规则 |
| default-database-strategy? | 标签 | - | | 默认分库策略 |
| default-table-strategy? | 标签 | - | | 默认分表策略 |
| props? | 标签 | - | | 相关属性配置 |

#### \<rdb:sharding-rule/>

Expand All @@ -213,7 +213,7 @@ props: 属性配置(可选)

| *名称* | *类型* | *数据类型* | *必填* | *说明* |
| ----------------------------- | ----------- | ---------- | ------ | ------- |
| table-rule+ | 标签 | - || 分片规则 |
| table-rule+ | 标签 | - || 分片规则 |

#### \<rdb:table-rule/>

Expand Down Expand Up @@ -272,6 +272,18 @@ props: 属性配置(可选)
| sql.show | 属性 | boolean || 是否开启SQL显示,默认为false不开启 |
| executor.size | 属性 | int || 最大工作线程数量 |

#### \<rdb:master-slave-data-source/\>

定义sharding-jdbc读写分离的数据源

| *名称* | *类型* | *数据类型* | *必填* | *说明* |
| ----------------------------- | ------------ | --------- | ------ | ---------------------------------------- |
| id | 属性 | String || Spring Bean ID |
| master-data-source-ref | 标签 | - || 主库数据源Bean ID |
| slave-data-sources-ref | 标签 | - || 从库数据源Bean列表,多个Bean以逗号分隔 |
| strategy-ref? | 标签 | - || 主从库复杂策略Bean ID,可以使用自定义复杂策略 |
| strategy-type? | 标签 | String || 主从库复杂策略类型<br />可选值:ROUND_ROBIN, RANDOM<br />默认值:ROUND_ROBIN |

#### Spring格式特别说明
如需使用inline表达式,需配置ignore-unresolvable为true,否则placeholder会把inline表达式当成属性key值导致出错.

Expand Down
20 changes: 14 additions & 6 deletions sharding-jdbc-doc/content/02-guide/master-slave.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ next = "/02-guide/configuration/"
为了缓解数据库压力,将写入和读取操作分离为不同数据源,写库称为主库,读库称为从库,一主库可配置多从库。

## 支持项
1. 提供了一主多从的读写分离配置,可配合分库分表使用
1. 提供了一主多从的读写分离配置,可独立使用,也可配合分库分表使用
1. 同一线程且同一数据库连接内,如有写入操作,以后的读操作均从主库读取,用于保证数据一致性。
1. Spring命名空间。
1. 基于Hint的强制主库路由。
Expand All @@ -26,11 +26,19 @@ next = "/02-guide/configuration/"

```java
// 构建读写分离数据源, 读写分离数据源实现了DataSource接口, 可直接当做数据源处理. masterDataSource0, slaveDataSource00, slaveDataSource01等为使用DBCP等连接池配置的真实数据源
DataSource masterSlaveDs0 = MasterSlaveDataSourceFactory.createDataSource("ms_0", masterDataSource0, slaveDataSource00, slaveDataSource01);
DataSource masterSlaveDs1 = MasterSlaveDataSourceFactory.createDataSource("ms_1", masterDataSource1, slaveDataSource11, slaveDataSource11);
Map<String, DataSource> slaveDataSourceMap0 = new HashMap<>();
slaveDataSourceMap0.put("slaveDataSource00", slaveDataSource00);
slaveDataSourceMap0.put("slaveDataSource01", slaveDataSource01);
// 可选择主从库负载均衡策略, 默认是ROUND_ROBIN, 还有RANDOM可以选择, 或者自定义负载策略
DataSource masterSlaveDs0 = MasterSlaveDataSourceFactory.createDataSource("ms_0", "masterDataSource0", masterDataSource0, slaveDataSourceMap0, MasterSlaveLoadBalanceStrategyType.ROUND_ROBIN);

Map<String, DataSource> slaveDataSourceMap1 = new HashMap<>();
slaveDataSourceMap1.put("slaveDataSource10", slaveDataSource10);
slaveDataSourceMap1.put("slaveDataSource11", slaveDataSource11);
DataSource masterSlaveDs1 = MasterSlaveDataSourceFactory.createDataSource("ms_1", "masterDataSource1", masterDataSource1, slaveDataSourceMap1, MasterSlaveLoadBalanceStrategyType.ROUND_ROBIN);

// 构建分库分表数据源
Map<String, DataSource> dataSourceMap = new HashMap<>(2);
Map<String, DataSource> dataSourceMap = new HashMap<>();
dataSourceMap.put("ms_0", masterSlaveDs0);
dataSourceMap.put("ms_1", masterSlaveDs1);

Expand Down Expand Up @@ -96,8 +104,8 @@ dataSourceMap.put("ms_1", masterSlaveDs1);
</bean>

<!-- 定义读写分离数据源, 读写分离数据源实现了DataSource接口, 可直接当做数据源处理 -->
<rdb:master-slave-data-source id="dbtbl_0" master-data-source-ref="dbtbl_0_master" slave-data-sources-ref="dbtbl_0_slave_0, dbtbl_0_slave_1" />
<rdb:master-slave-data-source id="dbtbl_1" master-data-source-ref="dbtbl_1_master" slave-data-sources-ref="dbtbl_1_slave_0, dbtbl_1_slave_1" />
<rdb:master-slave-data-source id="dbtbl_0" master-data-source-ref="dbtbl_0_master" slave-data-sources-ref="dbtbl_0_slave_0, dbtbl_0_slave_1" strategy-type="ROUND_ROBIN" />
<rdb:master-slave-data-source id="dbtbl_1" master-data-source-ref="dbtbl_1_master" slave-data-sources-ref="dbtbl_1_slave_0, dbtbl_1_slave_1" strategy-type="ROUND_ROBIN" />

<!-- 通过rdb:strategy和rdb:data-source继续构建分片数据源 -->
<rdb:strategy id="databaseStrategy" sharding-columns="user_id" algorithm-expression="dbtbl_${user_id.longValue() % 2}"/>
Expand Down

0 comments on commit eab1f37

Please sign in to comment.