You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by tu...@apache.org on 2023/04/13 10:15:16 UTC
[shardingsphere] branch master updated: Rename ReadwriteSplittingStrategy to ReadwriteSplittingGroup (#25153)
This is an automated email from the ASF dual-hosted git repository.
tuichenchuxin 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 915f2f86380 Rename ReadwriteSplittingStrategy to ReadwriteSplittingGroup (#25153)
915f2f86380 is described below
commit 915f2f86380aa33e4a704217f5b144d5ae035363
Author: zhaojinchao <zh...@apache.org>
AuthorDate: Thu Apr 13 18:15:07 2023 +0800
Rename ReadwriteSplittingStrategy to ReadwriteSplittingGroup (#25153)
* Update document
* Rename ReadwriteSplittingStrategy to ReadwriteSplittingGroup
---
.../yaml-config/rules/readwrite-splitting.cn.md | 26 +++------------------
.../yaml-config/rules/readwrite-splitting.en.md | 27 +++-------------------
.../ReadwriteSplittingGroup.java} | 6 ++---
.../type/StaticReadwriteSplittingGroup.java} | 8 +++----
...StandardReadwriteSplittingDataSourceRouter.java | 2 +-
.../rule/ReadwriteSplittingDataSourceRule.java | 14 +++++------
.../rule/ReadwriteSplittingRule.java | 10 ++++----
.../rule/ReadwriteSplittingRuleTest.java | 4 ++--
8 files changed, 28 insertions(+), 69 deletions(-)
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/rules/readwrite-splitting.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/rules/readwrite-splitting.cn.md
index 2f409591091..7b509383f5d 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/rules/readwrite-splitting.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/rules/readwrite-splitting.cn.md
@@ -9,16 +9,15 @@ weight = 2
## 参数解释
-### 静态读写分离
+### 读写分离
```yaml
rules:
- !READWRITE_SPLITTING
dataSources:
<data_source_name> (+): # 读写分离逻辑数据源名称
- static_strategy: # 读写分离类型
- write_data_source_name: # 写库数据源名称
- read_data_source_names: # 读库数据源名称,多个从数据源用逗号分隔
+ write_data_source_name: # 写库数据源名称
+ read_data_source_names: # 读库数据源名称,多个从数据源用逗号分隔
transactionalReadQueryStrategy (?): # 事务内读请求的路由策略,可选值:PRIMARY(路由至主库)、FIXED(同一事务内路由至固定数据源)、DYNAMIC(同一事务内路由至非固定数据源)。默认值:DYNAMIC
loadBalancerName: # 负载均衡算法名称
@@ -30,25 +29,6 @@ rules:
# ...
```
-### 动态读写分离
-
-```yaml
-rules:
-- !READWRITE_SPLITTING
- dataSources:
- <data_source_name> (+): # 读写分离逻辑数据源名称
- dynamic_strategy: # 读写分离类型
- auto_aware_data_source_name: # 数据库发现逻辑数据源名称
- transactionalReadQueryStrategy (?): # 事务内读请求的路由策略,可选值:PRIMARY(路由至主库)、FIXED(同一事务内路由至固定数据源)、DYNAMIC(同一事务内路由至非固定数据源)。默认值:DYNAMIC
- loadBalancerName: # 负载均衡算法名称
-
- # 负载均衡算法配置
- loadBalancers:
- <load_balancer_name> (+): # 负载均衡算法名称
- type: # 负载均衡算法类型
- props: # 负载均衡算法属性配置
- # ...
-```
算法类型的详情,请参见[内置负载均衡算法列表](/cn/user-manual/common-config/builtin-algorithm/load-balance)。
查询一致性路由的详情,请参见[核心特性:读写分离](/cn/features/readwrite-splitting/)。
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/rules/readwrite-splitting.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/rules/readwrite-splitting.en.md
index 506d0595a76..252711e4a7f 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/rules/readwrite-splitting.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/yaml-config/rules/readwrite-splitting.en.md
@@ -8,36 +8,15 @@ Read/write splitting YAML configuration is highly readable. The YAML format enab
## Parameters
-### Static Readwrite-splitting
+### Readwrite-splitting
```yaml
rules:
- !READWRITE_SPLITTING
dataSources:
<data_source_name> (+): # Logic data source name of readwrite-splitting
- static_strategy: # Readwrite-splitting type
- write_data_source_name: # Write data source name
- read_data_source_names: # Read data source names, multiple data source names separated with comma
- transactionalReadQueryStrategy (?): # Routing strategy for read query within a transaction, values include: PRIMARY (to primary), FIXED (to fixed data source), DYNAMIC (to any data source), default value: DYNAMIC
- loadBalancerName: # Load balance algorithm name
-
- # Load balance algorithm configuration
- loadBalancers:
- <load_balancer_name> (+): # Load balance algorithm name
- type: # Load balance algorithm type
- props: # Load balance algorithm properties
- # ...
-```
-
-### Dynamic Readwrite-splitting
-
-```yaml
-rules:
-- !READWRITE_SPLITTING
- dataSources:
- <data_source_name> (+): # Logic data source name of readwrite-splitting
- dynamic_strategy: # Readwrite-splitting type
- auto_aware_data_source_name: # Database discovery logic data source name
+ write_data_source_name: # Write data source name
+ read_data_source_names: # Read data source names, multiple data source names separated with comma
transactionalReadQueryStrategy (?): # Routing strategy for read query within a transaction, values include: PRIMARY (to primary), FIXED (to fixed data source), DYNAMIC (to any data source), default value: DYNAMIC
loadBalancerName: # Load balance algorithm name
diff --git a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/strategy/ReadwriteSplittingStrategy.java b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/group/ReadwriteSplittingGroup.java
similarity index 90%
rename from features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/strategy/ReadwriteSplittingStrategy.java
rename to features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/group/ReadwriteSplittingGroup.java
index b599bd0d366..678cd8a4c0a 100644
--- a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/strategy/ReadwriteSplittingStrategy.java
+++ b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/group/ReadwriteSplittingGroup.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.readwritesplitting.strategy;
+package org.apache.shardingsphere.readwritesplitting.group;
import org.apache.shardingsphere.infra.datasource.mapper.DataSourceRoleInfo;
@@ -23,9 +23,9 @@ import java.util.Collection;
import java.util.List;
/**
- * Readwrite-splitting strategy.
+ * Readwrite-splitting group.
*/
-public interface ReadwriteSplittingStrategy {
+public interface ReadwriteSplittingGroup {
/**
* Get write data source.
diff --git a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/strategy/type/StaticReadwriteSplittingStrategy.java b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/group/type/StaticReadwriteSplittingGroup.java
similarity index 86%
rename from features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/strategy/type/StaticReadwriteSplittingStrategy.java
rename to features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/group/type/StaticReadwriteSplittingGroup.java
index 7bacd55e1a4..b077c16084a 100644
--- a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/strategy/type/StaticReadwriteSplittingStrategy.java
+++ b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/group/type/StaticReadwriteSplittingGroup.java
@@ -15,22 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.readwritesplitting.strategy.type;
+package org.apache.shardingsphere.readwritesplitting.group.type;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.datasource.mapper.DataSourceRole;
import org.apache.shardingsphere.infra.datasource.mapper.DataSourceRoleInfo;
-import org.apache.shardingsphere.readwritesplitting.strategy.ReadwriteSplittingStrategy;
+import org.apache.shardingsphere.readwritesplitting.group.ReadwriteSplittingGroup;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
/**
- * Static readwrite-splitting strategy.
+ * Static readwrite-splitting group.
*/
@RequiredArgsConstructor
-public final class StaticReadwriteSplittingStrategy implements ReadwriteSplittingStrategy {
+public final class StaticReadwriteSplittingGroup implements ReadwriteSplittingGroup {
private final String writeDataSourceName;
diff --git a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/route/standard/StandardReadwriteSplittingDataSourceRouter.java b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/route/standard/StandardReadwriteSplittingDataSourceRouter.java
index fbd01ac03ae..93834a6d125 100644
--- a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/route/standard/StandardReadwriteSplittingDataSourceRouter.java
+++ b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/route/standard/StandardReadwriteSplittingDataSourceRouter.java
@@ -39,7 +39,7 @@ public final class StandardReadwriteSplittingDataSourceRouter {
}
private List<String> getFilteredReadDataSources(final ReadwriteSplittingDataSourceRule rule) {
- List<String> result = rule.getReadwriteSplittingStrategy().getReadDataSources();
+ List<String> result = rule.getReadwriteSplittingGroup().getReadDataSources();
for (ReadDataSourcesFilter each : ShardingSphereServiceLoader.getServiceInstances(ReadDataSourcesFilter.class)) {
result = each.filter(rule, result);
}
diff --git a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingDataSourceRule.java b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingDataSourceRule.java
index 80d6ae7e6c7..ddd6baf4e98 100644
--- a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingDataSourceRule.java
+++ b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingDataSourceRule.java
@@ -21,8 +21,8 @@ import lombok.Getter;
import org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
import org.apache.shardingsphere.readwritesplitting.api.transaction.TransactionalReadQueryStrategy;
import org.apache.shardingsphere.readwritesplitting.spi.ReadQueryLoadBalanceAlgorithm;
-import org.apache.shardingsphere.readwritesplitting.strategy.ReadwriteSplittingStrategy;
-import org.apache.shardingsphere.readwritesplitting.strategy.type.StaticReadwriteSplittingStrategy;
+import org.apache.shardingsphere.readwritesplitting.group.ReadwriteSplittingGroup;
+import org.apache.shardingsphere.readwritesplitting.group.type.StaticReadwriteSplittingGroup;
import java.util.Collection;
import java.util.HashSet;
@@ -39,7 +39,7 @@ public final class ReadwriteSplittingDataSourceRule {
private final ReadQueryLoadBalanceAlgorithm loadBalancer;
- private final ReadwriteSplittingStrategy readwriteSplittingStrategy;
+ private final ReadwriteSplittingGroup readwriteSplittingGroup;
private final Collection<String> disabledDataSourceNames = new HashSet<>();
@@ -48,11 +48,11 @@ public final class ReadwriteSplittingDataSourceRule {
name = config.getName();
this.transactionalReadQueryStrategy = transactionalReadQueryStrategy;
this.loadBalancer = loadBalancer;
- readwriteSplittingStrategy = createStaticReadwriteSplittingStrategy(config);
+ readwriteSplittingGroup = createStaticReadwriteSplittingGroup(config);
}
- private StaticReadwriteSplittingStrategy createStaticReadwriteSplittingStrategy(final ReadwriteSplittingDataSourceRuleConfiguration config) {
- return new StaticReadwriteSplittingStrategy(config.getWriteDataSourceName(), config.getReadDataSourceNames());
+ private StaticReadwriteSplittingGroup createStaticReadwriteSplittingGroup(final ReadwriteSplittingDataSourceRuleConfiguration config) {
+ return new StaticReadwriteSplittingGroup(config.getWriteDataSourceName(), config.getReadDataSourceNames());
}
/**
@@ -61,7 +61,7 @@ public final class ReadwriteSplittingDataSourceRule {
* @return write data source name
*/
public String getWriteDataSource() {
- return readwriteSplittingStrategy.getWriteDataSource();
+ return readwriteSplittingGroup.getWriteDataSource();
}
/**
diff --git a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
index 4e26b8ab3b2..818c5f199d9 100644
--- a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
+++ b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
@@ -43,7 +43,7 @@ import org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleCo
import org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration;
import org.apache.shardingsphere.readwritesplitting.exception.rule.InvalidInlineExpressionDataSourceNameException;
import org.apache.shardingsphere.readwritesplitting.spi.ReadQueryLoadBalanceAlgorithm;
-import org.apache.shardingsphere.readwritesplitting.strategy.type.StaticReadwriteSplittingStrategy;
+import org.apache.shardingsphere.readwritesplitting.group.type.StaticReadwriteSplittingGroup;
import java.util.Collection;
import java.util.HashMap;
@@ -153,7 +153,7 @@ public final class ReadwriteSplittingRule implements DatabaseRule, DataSourceCon
public Map<String, Collection<DataSourceRoleInfo>> getDataSourceMapper() {
Map<String, Collection<DataSourceRoleInfo>> result = new LinkedHashMap<>();
for (Entry<String, ReadwriteSplittingDataSourceRule> entry : dataSourceRules.entrySet()) {
- result.put(entry.getValue().getName(), entry.getValue().getReadwriteSplittingStrategy().getAllDataSources());
+ result.put(entry.getValue().getName(), entry.getValue().getReadwriteSplittingGroup().getAllDataSources());
}
return result;
}
@@ -174,7 +174,7 @@ public final class ReadwriteSplittingRule implements DatabaseRule, DataSourceCon
}
private void deleteStorageNodeDataSources(final ReadwriteSplittingDataSourceRule rule) {
- rule.getReadwriteSplittingStrategy().getReadDataSources()
+ rule.getReadwriteSplittingGroup().getReadDataSources()
.forEach(each -> instanceContext.getEventBusContext().post(new StorageNodeDataSourceDeletedEvent(new QualifiedDatabase(databaseName, rule.getName(), each))));
}
@@ -195,10 +195,10 @@ public final class ReadwriteSplittingRule implements DatabaseRule, DataSourceCon
private Map<String, Map<String, String>> exportStaticDataSources() {
Map<String, Map<String, String>> result = new LinkedHashMap<>(dataSourceRules.size(), 1);
for (ReadwriteSplittingDataSourceRule each : dataSourceRules.values()) {
- if (each.getReadwriteSplittingStrategy() instanceof StaticReadwriteSplittingStrategy) {
+ if (each.getReadwriteSplittingGroup() instanceof StaticReadwriteSplittingGroup) {
Map<String, String> exportedDataSources = new LinkedHashMap<>(2, 1);
exportedDataSources.put(ExportableItemConstants.PRIMARY_DATA_SOURCE_NAME, each.getWriteDataSource());
- exportedDataSources.put(ExportableItemConstants.REPLICA_DATA_SOURCE_NAMES, String.join(",", each.getReadwriteSplittingStrategy().getReadDataSources()));
+ exportedDataSources.put(ExportableItemConstants.REPLICA_DATA_SOURCE_NAMES, String.join(",", each.getReadwriteSplittingGroup().getReadDataSources()));
result.put(each.getName(), exportedDataSources);
}
}
diff --git a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRuleTest.java b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRuleTest.java
index c31add28cea..746dae26cb8 100644
--- a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRuleTest.java
+++ b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRuleTest.java
@@ -65,8 +65,8 @@ class ReadwriteSplittingRuleTest {
private void assertDataSourceRule(final ReadwriteSplittingDataSourceRule actual) {
assertThat(actual.getName(), is("readwrite"));
- assertThat(actual.getReadwriteSplittingStrategy().getWriteDataSource(), is("write_ds"));
- assertThat(actual.getReadwriteSplittingStrategy().getReadDataSources(), is(Arrays.asList("read_ds_0", "read_ds_1")));
+ assertThat(actual.getReadwriteSplittingGroup().getWriteDataSource(), is("write_ds"));
+ assertThat(actual.getReadwriteSplittingGroup().getReadDataSources(), is(Arrays.asList("read_ds_0", "read_ds_1")));
assertThat(actual.getLoadBalancer().getType(), is("RANDOM"));
}