Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use yaml instead of json for registry center & Support registry center for Proxy. #948

Merged
merged 36 commits into from
Jun 21, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
f49ed9d
convert config object to config yaml.
tristaZero Jun 15, 2018
ea243a6
add representers configuration and datasource.
tristaZero Jun 15, 2018
513edc3
add sharding config representer.
tristaZero Jun 15, 2018
f3d2489
add converter for datasource and sharding configuration.
tristaZero Jun 15, 2018
75f0e9c
add master slave configuration converter and representer.
tristaZero Jun 15, 2018
3c925f2
change structure for yaml files.
tristaZero Jun 15, 2018
6d49abd
add sharding-jdbc pom
tristaZero Jun 15, 2018
23c319d
add parameter fro yaml master-slave rule config
tristaZero Jun 15, 2018
585c40b
handle null for configuration.
tristaZero Jun 15, 2018
033db62
modify reflection class.
tristaZero Jun 15, 2018
1dd296c
handle null for configuration.
tristaZero Jun 15, 2018
8abbc6c
Merge branch 'dev' of ssh://github.com/shardingjdbc/sharding-jdbc int…
tristaZero Jun 16, 2018
b30d8f8
using yaml instead of json to store config in registry.
tristaZero Jun 17, 2018
b55090e
move yamlproxyconfig to sharding-proxy
tristaZero Jun 17, 2018
ef0b914
Merge branch 'dev' of ssh://github.com/shardingjdbc/sharding-jdbc int…
tristaZero Jun 17, 2018
1302116
add proxy config converter
tristaZero Jun 17, 2018
c2e0060
modify proxy config converter.
tristaZero Jun 17, 2018
1e6e6f6
add datasource parameter converter.
tristaZero Jun 19, 2018
5a4676a
modify config node and service.
tristaZero Jun 19, 2018
085ba34
modify listener manager
tristaZero Jun 19, 2018
db2f9c3
add proxy registry center files.
tristaZero Jun 19, 2018
2b65908
add proxy registry center.
tristaZero Jun 19, 2018
acc4ec6
Merge branch 'dev' of ssh://github.com/shardingjdbc/sharding-jdbc int…
tristaZero Jun 19, 2018
00ecec2
modify proxy registry center.
tristaZero Jun 19, 2018
5aafe59
Merge branch 'dev' of ssh://github.com/shardingjdbc/sharding-jdbc int…
tristaZero Jun 19, 2018
7db5d33
modify manager for proxy registry.
tristaZero Jun 19, 2018
df7f330
remove orchestration yaml converting
tristaZero Jun 20, 2018
084e840
change zk node path.
tristaZero Jun 20, 2018
8d5906c
modify proxy node path.
tristaZero Jun 20, 2018
d187dad
add eventbus for proxy.
tristaZero Jun 20, 2018
c3e26f2
using eventbus for proxy.
tristaZero Jun 21, 2018
b3bd3fc
fix conflict
tristaZero Jun 21, 2018
8888a8c
fix conflict
tristaZero Jun 21, 2018
54f6f93
handle max working threads.
tristaZero Jun 21, 2018
39c762a
Merge branch 'dev' of ssh://github.com/shardingjdbc/sharding-jdbc int…
tristaZero Jun 21, 2018
97048bf
remove sout.
tristaZero Jun 21, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import io.shardingsphere.core.api.config.MasterSlaveRuleConfiguration;
import io.shardingsphere.core.exception.ShardingConfigurationException;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.ArrayList;
Expand All @@ -34,7 +35,9 @@
* Master-slave rule configuration for yaml.
*
* @author caohao
* @author panjuan
*/
@NoArgsConstructor
@Getter
@Setter
public class YamlMasterSlaveRuleConfiguration {
Expand All @@ -51,6 +54,15 @@ public class YamlMasterSlaveRuleConfiguration {

private Map<String, Object> configMap = new ConcurrentHashMap<>();

public YamlMasterSlaveRuleConfiguration(final MasterSlaveRuleConfiguration masterSlaveRuleConfiguration, final Map<String, Object> configMap) {
name = masterSlaveRuleConfiguration.getName();
masterDataSourceName = masterSlaveRuleConfiguration.getMasterDataSourceName();
slaveDataSourceNames = masterSlaveRuleConfiguration.getSlaveDataSourceNames();
loadBalanceAlgorithmClassName = null == masterSlaveRuleConfiguration.getLoadBalanceAlgorithm()
? null : masterSlaveRuleConfiguration.getLoadBalanceAlgorithm().getClass().getName();
this.configMap = configMap;
}

/**
* Get master-slave rule configuration from yaml.
*
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,16 @@

import io.shardingsphere.core.api.config.MasterSlaveRuleConfiguration;
import io.shardingsphere.core.api.config.ShardingRuleConfiguration;
import io.shardingsphere.core.api.config.TableRuleConfiguration;
import io.shardingsphere.core.keygen.KeyGeneratorFactory;
import io.shardingsphere.core.yaml.masterslave.YamlMasterSlaveRuleConfiguration;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
Expand All @@ -37,7 +40,9 @@
* Sharding rule configuration for yaml.
*
* @author caohao
* @author panjuan
*/
@NoArgsConstructor
@Getter
@Setter
public class YamlShardingRuleConfiguration {
Expand All @@ -60,6 +65,24 @@ public class YamlShardingRuleConfiguration {

private Properties props = new Properties();

public YamlShardingRuleConfiguration(final ShardingRuleConfiguration shardingRuleConfiguration,
final Map<String, Object> configMap, final Properties props) {
defaultDataSourceName = shardingRuleConfiguration.getDefaultDataSourceName();
for (TableRuleConfiguration each : shardingRuleConfiguration.getTableRuleConfigs()) {
tables.put(each.getLogicTable(), new YamlTableRuleConfiguration(each));
}
bindingTables.addAll(shardingRuleConfiguration.getBindingTableGroups());
defaultDatabaseStrategy = new YamlShardingStrategyConfiguration(shardingRuleConfiguration.getDefaultDatabaseShardingStrategyConfig());
defaultTableStrategy = new YamlShardingStrategyConfiguration(shardingRuleConfiguration.getDefaultTableShardingStrategyConfig());
defaultKeyGeneratorClassName = null == shardingRuleConfiguration.getDefaultKeyGenerator()
? null : shardingRuleConfiguration.getDefaultKeyGenerator().getClass().getName();
for (MasterSlaveRuleConfiguration each : shardingRuleConfiguration.getMasterSlaveRuleConfigs()) {
masterSlaveRules.put(each.getName(), new YamlMasterSlaveRuleConfiguration(each, new HashMap<String, Object>()));
}
this.configMap = configMap;
this.props = props;
}

/**
* Get sharding rule configuration.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,16 @@
import io.shardingsphere.core.yaml.sharding.strategy.YamlNoneShardingStrategyConfiguration;
import io.shardingsphere.core.yaml.sharding.strategy.YamlStandardShardingStrategyConfiguration;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
* Configuration for yaml sharding strategy.
*
* @author caohao
* @author panjuan
*/
@NoArgsConstructor
@Getter
@Setter
public class YamlShardingStrategyConfiguration {
Expand All @@ -56,6 +59,33 @@ public class YamlShardingStrategyConfiguration {

private YamlNoneShardingStrategyConfiguration none;

public YamlShardingStrategyConfiguration(final ShardingStrategyConfiguration shardingStrategyConfiguration) {
if (shardingStrategyConfiguration instanceof StandardShardingStrategyConfiguration) {
standard = new YamlStandardShardingStrategyConfiguration();
StandardShardingStrategyConfiguration config = (StandardShardingStrategyConfiguration) shardingStrategyConfiguration;
standard.setShardingColumn(config.getShardingColumn());
standard.setPreciseAlgorithmClassName(config.getPreciseShardingAlgorithm().getClass().getName());
standard.setRangeAlgorithmClassName(null == config.getRangeShardingAlgorithm()
? null : config.getRangeShardingAlgorithm().getClass().getName());
}
if (shardingStrategyConfiguration instanceof ComplexShardingStrategyConfiguration) {
complex = new YamlComplexShardingStrategyConfiguration();
ComplexShardingStrategyConfiguration config = (ComplexShardingStrategyConfiguration) shardingStrategyConfiguration;
complex.setShardingColumns(config.getShardingColumns());
complex.setAlgorithmClassName(config.getShardingAlgorithm().getClass().getName());
}
if (shardingStrategyConfiguration instanceof HintShardingStrategyConfiguration) {
hint = new YamlHintShardingStrategyConfiguration();
hint.setAlgorithmClassName(((HintShardingStrategyConfiguration) shardingStrategyConfiguration).getShardingAlgorithm().getClass().getName());
}
if (shardingStrategyConfiguration instanceof InlineShardingStrategyConfiguration) {
inline = new YamlInlineShardingStrategyConfiguration();
InlineShardingStrategyConfiguration config = (InlineShardingStrategyConfiguration) shardingStrategyConfiguration;
inline.setShardingColumn(config.getShardingColumn());
inline.setAlgorithmExpression(config.getAlgorithmExpression());
}
}

/**
* Build sharding strategy configuration.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,16 @@
import io.shardingsphere.core.api.config.TableRuleConfiguration;
import io.shardingsphere.core.keygen.KeyGeneratorFactory;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
* Yaml table rule configuration.
*
* @author caohao
* @author panjuan
*/
@NoArgsConstructor
@Getter
@Setter
public class YamlTableRuleConfiguration {
Expand All @@ -47,6 +50,17 @@ public class YamlTableRuleConfiguration {

private String logicIndex;

public YamlTableRuleConfiguration(final TableRuleConfiguration tableRuleConfiguration) {
logicTable = tableRuleConfiguration.getLogicTable();
actualDataNodes = tableRuleConfiguration.getActualDataNodes();
databaseStrategy = new YamlShardingStrategyConfiguration(tableRuleConfiguration.getDatabaseShardingStrategyConfig());
tableStrategy = new YamlShardingStrategyConfiguration(tableRuleConfiguration.getTableShardingStrategyConfig());
keyGeneratorColumnName = tableRuleConfiguration.getKeyGeneratorColumnName();
keyGeneratorClassName = null == tableRuleConfiguration.getKeyGenerator()
? null : tableRuleConfiguration.getKeyGenerator().getClass().getName();
logicTable = tableRuleConfiguration.getLogicTable();
}

/**
* Build table rule configuration.
*
Expand Down
6 changes: 5 additions & 1 deletion sharding-jdbc-orchestration/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@
<artifactId>sharding-jdbc</artifactId>
<version>${sharding-sphere.version}</version>
</dependency>

<dependency>
<groupId>io.shardingsphere</groupId>
<artifactId>sharding-core</artifactId>
<version>${sharding-sphere.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
*
* @author zhangliang
* @author caohao
* @author panjuan
*/
@Slf4j
public final class OrchestrationFacade implements AutoCloseable {
Expand Down Expand Up @@ -129,6 +130,18 @@ public void init(final Map<String, DataSource> dataSourceMap, final MasterSlaveR
listenerManager.initMasterSlaveListeners(masterSlaveDataSource);
}

/**
* Initialize for proxy orchestration.
*
* @param orchestrationProxyConfiguration yaml proxy configuration
*/
public void init(final OrchestrationProxyConfiguration orchestrationProxyConfiguration) {
configService.persistProxyConfiguration(orchestrationProxyConfiguration, isOverwrite);
instanceStateService.persistProxyInstanceOnline();
dataSourceService.persistDataSourcesNode();
listenerManager.initProxyListeners();
}

private void reviseShardingRuleConfigurationForMasterSlave(final Map<String, DataSource> dataSourceMap, final ShardingRuleConfiguration shardingRuleConfig) {
for (Entry<String, DataSource> entry : dataSourceMap.entrySet()) {
if (entry.getValue() instanceof MasterSlaveDataSource) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
/*
* Copyright 2016-2018 shardingsphere.io.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* </p>
*/

package io.shardingsphere.jdbc.orchestration.internal;

import io.shardingsphere.core.rule.DataSourceParameter;
import io.shardingsphere.core.rule.ProxyAuthority;
import io.shardingsphere.core.yaml.masterslave.YamlMasterSlaveRuleConfiguration;
import io.shardingsphere.core.yaml.sharding.YamlShardingRuleConfiguration;
import io.shardingsphere.jdbc.orchestration.yaml.YamlOrchestrationConfiguration;
import lombok.Getter;
import lombok.Setter;

import java.util.HashMap;
import java.util.Map;

/**
* Orchestration proxy configuration.
*
* @author panjuan
*/
@Getter
@Setter
public class OrchestrationProxyConfiguration {

private Map<String, DataSourceParameter> dataSources = new HashMap<>();

private YamlMasterSlaveRuleConfiguration masterSlaveRule = new YamlMasterSlaveRuleConfiguration();

private YamlShardingRuleConfiguration shardingRule = new YamlShardingRuleConfiguration();

private ProxyAuthority proxyAuthority = new ProxyAuthority();

private boolean withoutJdbc;

private String transactionMode;

private int maxWorkingThreads;

private YamlOrchestrationConfiguration orchestration;
}
Loading