This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new cbb0c0d21c5 refactor readwrite-splitting doc (#19089)
cbb0c0d21c5 is described below

commit cbb0c0d21c5bd91b82e30abfa24a0c804732cec7
Author: Chuxin Chen <[email protected]>
AuthorDate: Wed Jul 13 14:29:59 2022 +0800

    refactor readwrite-splitting doc (#19089)
    
    * refactor readwrite-splitting doc
    
    * refactor readwrite-splitting.cn.md
---
 .../java-api/rules/readwrite-splitting.cn.md       | 46 ++++++++++++++++-
 .../java-api/rules/readwrite-splitting.en.md       | 59 +++++++++++++++++++---
 2 files changed, 96 insertions(+), 9 deletions(-)

diff --git 
a/docs/document/content/user-manual/shardingsphere-jdbc/java-api/rules/readwrite-splitting.cn.md
 
b/docs/document/content/user-manual/shardingsphere-jdbc/java-api/rules/readwrite-splitting.cn.md
index c826dd64bbb..982d6bdd28b 100644
--- 
a/docs/document/content/user-manual/shardingsphere-jdbc/java-api/rules/readwrite-splitting.cn.md
+++ 
b/docs/document/content/user-manual/shardingsphere-jdbc/java-api/rules/readwrite-splitting.cn.md
@@ -3,7 +3,12 @@ title = "读写分离"
 weight = 2
 +++
 
-## 配置入口
+## 背景信息
+Java API 形式配置的读写分离可以方便的适用于各种场景,不依赖额外的 jar 包,用户只需要通过 java 
代码构造读写分离数据源便可以使用读写分离功能。
+
+## 参数解释
+
+### 配置入口
 
 
类名称:org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration
 
@@ -47,3 +52,42 @@ weight = 2
 
 
算法类型的详情,请参见[内置负载均衡算法列表](/cn/user-manual/shardingsphere-jdbc/builtin-algorithm/load-balance)。
 查询一致性路由的详情,请参见[使用规范](/cn/features/readwrite-splitting/use-norms)。
+
+## 操作步骤
+1. 添加读写分离数据源
+2. 设置负载均衡算法
+3. 使用读写分离数据源
+   
+## 配置示例
+
+```java
+public DataSource getDataSource() throws SQLException {
+        ReadwriteSplittingDataSourceRuleConfiguration dataSourceConfig = new 
ReadwriteSplittingDataSourceRuleConfiguration(
+                "demo_read_query_ds", new 
StaticReadwriteSplittingStrategyConfiguration("demo_write_ds",
+                Arrays.asList("demo_read_ds_0", "demo_read_ds_1")), 
null,"demo_weight_lb");
+        Properties algorithmProps = new Properties();
+        algorithmProps.setProperty("demo_read_ds_0", "2");
+        algorithmProps.setProperty("demo_read_ds_1", "1");
+        Map<String, ShardingSphereAlgorithmConfiguration> algorithmConfigMap = 
new HashMap<>(1);
+        algorithmConfigMap.put("demo_weight_lb", new 
ShardingSphereAlgorithmConfiguration("WEIGHT", algorithmProps));
+        ReadwriteSplittingRuleConfiguration ruleConfig = new 
ReadwriteSplittingRuleConfiguration(Collections.singleton(dataSourceConfig), 
algorithmConfigMap);
+        Properties props = new Properties();
+        props.setProperty("sql-show", Boolean.TRUE.toString());
+        return 
ShardingSphereDataSourceFactory.createDataSource(createDataSourceMap(), 
Collections.singleton(ruleConfig), props);
+    }
+    
+    private Map<String, DataSource> createDataSourceMap() {
+        Map<String, DataSource> result = new HashMap<>(3, 1);
+        result.put("demo_write_ds", 
DataSourceUtil.createDataSource("demo_write_ds"));
+        result.put("demo_read_ds_0", 
DataSourceUtil.createDataSource("demo_read_ds_0"));
+        result.put("demo_read_ds_1", 
DataSourceUtil.createDataSource("demo_read_ds_1"));
+        return result;
+    }
+```
+
+## 相关参考
+
+- [核心特性:读写分离](/cn/features/readwrite-splitting/)
+- 
[YAML配置:读写分离](/cn/user-manual/shardingsphere-jdbc/yaml-config/rules/readwrite-splitting/)
+- [Spring Boot 
Starter:读写分离](/cn/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/readwrite-splitting/)
+- [Spring 
命名空间:读写分离](/cn/user-manual/shardingsphere-jdbc/spring-namespace/rules/readwrite-splitting/)
diff --git 
a/docs/document/content/user-manual/shardingsphere-jdbc/java-api/rules/readwrite-splitting.en.md
 
b/docs/document/content/user-manual/shardingsphere-jdbc/java-api/rules/readwrite-splitting.en.md
index 0ff4ce87f98..a8e955f17fc 100644
--- 
a/docs/document/content/user-manual/shardingsphere-jdbc/java-api/rules/readwrite-splitting.en.md
+++ 
b/docs/document/content/user-manual/shardingsphere-jdbc/java-api/rules/readwrite-splitting.en.md
@@ -3,22 +3,28 @@ title = "Readwrite-splitting"
 weight = 2
 +++
 
-## Root Configuration
+## Background
+
+The read/write splitting configured in Java API form can be easily applied to 
various scenarios without relying on additional jar packages. Users only need 
to construct the read/write splitting data source through java code to be able 
to use the read/write splitting function.
+
+## Parameters Explained
+
+### Entry
 
 Class name: 
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration
 
-Attributes:
+Configurable Properties:
 
 | *Name*            | *DataType*                                               
   | *Description*                                                          |
 | ----------------- | 
----------------------------------------------------------- | 
---------------------------------------------------------------------- |
 | dataSources (+)   | 
Collection\<ReadwriteSplittingDataSourceRuleConfiguration\> | Data sources of 
write and reads                                        |
 | loadBalancers (*) | Map\<String, ShardingSphereAlgorithmConfiguration\>      
   | Load balance algorithm name and configurations of replica data sources |
 
-## Readwrite-splitting Data Source Configuration
+### Primary-secondary Data Source Configuration
 
 Class name: 
org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration
 
-Attributes:
+Configurable Properties:
 
 | *Name*                     | *DataType*           | *Description*            
                         | *Default Value*                   |
 | -------------------------- | -------------------- | 
------------------------------------------------- | 
----------------------------------|
@@ -27,10 +33,9 @@ Attributes:
 | dynamicStrategy            | Properties           | Dynamic 
Readwrite-splitting configuration         | -                                  |
 | loadBalancerName (?)       | String               | Load balance algorithm 
name of replica sources    | Round robin load balance algorithm |
 
-
 Class 
name:org.apache.shardingsphere.readwritesplitting.api.strategy.StaticReadwriteSplittingStrategyConfiguration
 
-Attributes:
+Configurable Properties:
 
 | *Name*                     | *DataType*           | *Description*            
   | *Default Value* |
 | -------------------------- | ---------------------| 
----------------------------| ----------------|
@@ -39,12 +44,50 @@ Attributes:
 
 Class 
name:org.apache.shardingsphere.readwritesplitting.api.strategy.DynamicReadwriteSplittingStrategyConfiguration
 
-Attributes:
+Configurable Properties:
 
 | *Name*                          | *DataType*        | *Description*          
                                                                                
     | *Default Value*    |
 | ------------------------------- | -------------------| 
------------------------------------------------------------------------------------------------------------|
 -------------------|
 | autoAwareDataSourceName         | String             | Database discovery 
logic data source name                                                          
         | -                  |
 | writeDataSourceQueryEnabled (?) | String             | All read data source 
are offline, write data source whether the data source is responsible for read 
traffic | true               |
 
-Please refer to [Built-in Load Balance Algorithm 
List](/en/user-manual/shardingsphere-jdbc/builtin-algorithm/load-balance) for 
more details about type of algorithm.
+Please refer to [Built-in Load Balance Algorithm 
List](/en/user-manual/shardingsphere-jdbc/builtin-algorithm/load-balance) for 
details on algorithm types.
 Please refer to [Use Norms](/en/features/readwrite-splitting/use-norms) for 
more details about query consistent routing.
+
+## Operating Procedures
+1. Add read-write splitting data source
+2. Set load balancing algorithms
+3. Use read-write splitting data source 
+   
+## Configuration Examples
+
+```java
+public DataSource getDataSource() throws SQLException {
+        ReadwriteSplittingDataSourceRuleConfiguration dataSourceConfig = new 
ReadwriteSplittingDataSourceRuleConfiguration(
+                "demo_read_query_ds", new 
StaticReadwriteSplittingStrategyConfiguration("demo_write_ds",
+                Arrays.asList("demo_read_ds_0", "demo_read_ds_1")), 
null,"demo_weight_lb");
+        Properties algorithmProps = new Properties();
+        algorithmProps.setProperty("demo_read_ds_0", "2");
+        algorithmProps.setProperty("demo_read_ds_1", "1");
+        Map<String, ShardingSphereAlgorithmConfiguration> algorithmConfigMap = 
new HashMap<>(1);
+        algorithmConfigMap.put("demo_weight_lb", new 
ShardingSphereAlgorithmConfiguration("WEIGHT", algorithmProps));
+        ReadwriteSplittingRuleConfiguration ruleConfig = new 
ReadwriteSplittingRuleConfiguration(Collections.singleton(dataSourceConfig), 
algorithmConfigMap);
+        Properties props = new Properties();
+        props.setProperty("sql-show", Boolean.TRUE.toString());
+        return 
ShardingSphereDataSourceFactory.createDataSource(createDataSourceMap(), 
Collections.singleton(ruleConfig), props);
+    }
+    
+    private Map<String, DataSource> createDataSourceMap() {
+        Map<String, DataSource> result = new HashMap<>(3, 1);
+        result.put("demo_write_ds", 
DataSourceUtil.createDataSource("demo_write_ds"));
+        result.put("demo_read_ds_0", 
DataSourceUtil.createDataSource("demo_read_ds_0"));
+        result.put("demo_read_ds_1", 
DataSourceUtil.createDataSource("demo_read_ds_1"));
+        return result;
+    }
+```
+
+## References
+- [Read-write splitting-Core features](/en/features/readwrite-splitting/)
+- [YAML Configuration: read-write 
splitting](/en/user-manual/shardingsphere-jdbc/yaml-config/rules/readwrite-splitting/)
+- [Spring Boot Starter: read-write 
splitting](/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/readwrite-splitting/)
+- [Spring namespace: read-write 
splitting](/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/readwrite-splitting/)

Reply via email to