提交 cad130f8 编写于 作者: T terrymanu

refactor orchestration

上级 33a08cc1
......@@ -44,24 +44,24 @@ public class OrchestrationSpringMasterSlaveDataSource extends MasterSlaveDataSou
private final InstanceStateService instanceStateService;
private final OrchestrationMasterSlaveConfiguration orchestrationMasterSlaveConfig;
private final OrchestrationMasterSlaveConfiguration config;
@Setter
private ApplicationContext applicationContext;
public OrchestrationSpringMasterSlaveDataSource(final String name, final boolean overwrite, final CoordinatorRegistryCenter registryCenter, final Map<String, DataSource> dataSourceMap,
final MasterSlaveRuleConfiguration masterSlaveRuleConfig) throws SQLException {
super(masterSlaveRuleConfig.build(dataSourceMap));
orchestrationMasterSlaveConfig = new OrchestrationMasterSlaveConfiguration(name, overwrite, registryCenter, dataSourceMap, masterSlaveRuleConfig);
configurationService = new ConfigurationService(registryCenter, name);
instanceStateService = new InstanceStateService(registryCenter, name);
public OrchestrationSpringMasterSlaveDataSource(final String name, final boolean overwrite, final CoordinatorRegistryCenter registryCenter,
final Map<String, DataSource> dataSourceMap, final MasterSlaveRuleConfiguration config) throws SQLException {
super(config.build(dataSourceMap));
this.config = new OrchestrationMasterSlaveConfiguration(name, overwrite, registryCenter, dataSourceMap, config);
configurationService = new ConfigurationService(name, registryCenter);
instanceStateService = new InstanceStateService(name, registryCenter);
}
/**
* initial orchestration spring master-slave data source.
*/
public void init() {
configurationService.addMasterSlaveConfiguration(orchestrationMasterSlaveConfig, this);
configurationService.addMasterSlaveConfiguration(config, this);
instanceStateService.addMasterSlaveState(this);
}
......
......@@ -48,7 +48,7 @@ public class OrchestrationSpringShardingDataSource extends ShardingDataSource im
private final InstanceStateService instanceStateService;
private final OrchestrationShardingConfiguration orchestrationShardingConfig;
private final OrchestrationShardingConfiguration config;
private final Properties props;
......@@ -58,9 +58,9 @@ public class OrchestrationSpringShardingDataSource extends ShardingDataSource im
public OrchestrationSpringShardingDataSource(final String name, final boolean overwrite, final CoordinatorRegistryCenter registryCenter, final Map<String, DataSource> dataSourceMap,
final ShardingRuleConfiguration shardingRuleConfig, final Properties props) throws SQLException {
super(shardingRuleConfig.build(dataSourceMap), props);
configurationService = new ConfigurationService(registryCenter, name);
instanceStateService = new InstanceStateService(registryCenter, name);
orchestrationShardingConfig = new OrchestrationShardingConfiguration(
configurationService = new ConfigurationService(name, registryCenter);
instanceStateService = new InstanceStateService(name, registryCenter);
config = new OrchestrationShardingConfiguration(
name, overwrite, registryCenter, getActualDataSourceMapAndReviseShardingRuleConfiguration(dataSourceMap, shardingRuleConfig), shardingRuleConfig);
this.props = props;
}
......@@ -69,8 +69,8 @@ public class OrchestrationSpringShardingDataSource extends ShardingDataSource im
* initial orchestration spring sharding data source.
*/
public void init() {
configurationService.persistShardingConfiguration(orchestrationShardingConfig, props);
configurationService.addShardingConfigurationChangeListener(orchestrationShardingConfig.getName(), orchestrationShardingConfig.getRegistryCenter(), this);
configurationService.persistShardingConfiguration(config, props);
configurationService.addShardingConfigurationChangeListener(config.getName(), config.getRegistryCenter(), this);
instanceStateService.addShardingState(this);
}
......
......@@ -42,6 +42,8 @@ public final class OrchestrationMasterSlaveDataSourceFactory {
* @throws SQLException SQL exception
*/
public static DataSource createDataSource(final OrchestrationMasterSlaveConfiguration config) throws SQLException {
return new OrchestrationMasterSlaveDataSource(config).getDataSource();
OrchestrationMasterSlaveDataSource orchestrationMasterSlaveDataSource = new OrchestrationMasterSlaveDataSource(config);
orchestrationMasterSlaveDataSource.init();
return orchestrationMasterSlaveDataSource.getDataSource();
}
}
......@@ -43,7 +43,7 @@ public final class OrchestrationShardingDataSourceFactory {
* @throws SQLException SQL exception
*/
public static DataSource createDataSource(final OrchestrationShardingConfiguration config) throws SQLException {
return new OrchestrationShardingDataSource(config).getDataSource();
return createDataSource(config, new Properties());
}
/**
......@@ -55,6 +55,8 @@ public final class OrchestrationShardingDataSourceFactory {
* @throws SQLException SQL exception
*/
public static DataSource createDataSource(final OrchestrationShardingConfiguration config, final Properties props) throws SQLException {
return new OrchestrationShardingDataSource(config, props).getDataSource();
OrchestrationShardingDataSource orchestrationShardingDataSource = new OrchestrationShardingDataSource(config, props);
orchestrationShardingDataSource.init();
return orchestrationShardingDataSource.getDataSource();
}
}
......@@ -34,12 +34,27 @@ import java.sql.SQLException;
@Getter
public class OrchestrationMasterSlaveDataSource {
private MasterSlaveDataSource dataSource;
private final OrchestrationMasterSlaveConfiguration config;
private final MasterSlaveDataSource dataSource;
private final ConfigurationService configurationService;
private final InstanceStateService instanceStateService;
public OrchestrationMasterSlaveDataSource(final OrchestrationMasterSlaveConfiguration config) throws SQLException {
config.getRegistryCenter().init();
this.config = config;
dataSource = (MasterSlaveDataSource) MasterSlaveDataSourceFactory.createDataSource(config.getDataSourceMap(), config.getMasterSlaveRuleConfiguration());
new ConfigurationService(config.getRegistryCenter(), config.getName()).addMasterSlaveConfiguration(config, dataSource);
new InstanceStateService(config.getRegistryCenter(), config.getName()).addMasterSlaveState(dataSource);
configurationService = new ConfigurationService(config.getName(), config.getRegistryCenter());
instanceStateService = new InstanceStateService(config.getName(), config.getRegistryCenter());
}
/**
* Initial orchestration master-slave data source.
*/
public void init() {
configurationService.addMasterSlaveConfiguration(config, dataSource);
instanceStateService.addMasterSlaveState(dataSource);
}
}
......@@ -35,21 +35,35 @@ import java.util.Properties;
@Getter
public class OrchestrationShardingDataSource {
private ShardingDataSource dataSource;
private final OrchestrationShardingConfiguration config;
private final Properties props;
private final ShardingDataSource dataSource;
private final ConfigurationService configurationService;
private final InstanceStateService instanceStateService;
public OrchestrationShardingDataSource(final OrchestrationShardingConfiguration config) throws SQLException {
config.getRegistryCenter().init();
new ConfigurationService(config.getRegistryCenter(), config.getName()).persistShardingConfiguration(config, new Properties());
dataSource = (ShardingDataSource) ShardingDataSourceFactory.createDataSource(config.getDataSourceMap(), config.getShardingRuleConfig());
new ConfigurationService(config.getRegistryCenter(), config.getName()).addShardingConfigurationChangeListener(config.getName(), config.getRegistryCenter(), dataSource);
new InstanceStateService(config.getRegistryCenter(), config.getName()).addShardingState(dataSource);
this(config, new Properties());
}
public OrchestrationShardingDataSource(final OrchestrationShardingConfiguration config, final Properties props) throws SQLException {
config.getRegistryCenter().init();
new ConfigurationService(config.getRegistryCenter(), config.getName()).persistShardingConfiguration(config, props);
dataSource = (ShardingDataSource) ShardingDataSourceFactory.createDataSource(config.getDataSourceMap(), config.getShardingRuleConfig(), props);
new ConfigurationService(config.getRegistryCenter(), config.getName()).addShardingConfigurationChangeListener(config.getName(), config.getRegistryCenter(), dataSource);
new InstanceStateService(config.getRegistryCenter(), config.getName()).addShardingState(dataSource);
this.config = config;
this.props = props;
dataSource = (ShardingDataSource) ShardingDataSourceFactory.createDataSource(config.getDataSourceMap(), config.getShardingRuleConfig());
configurationService = new ConfigurationService(config.getName(), config.getRegistryCenter());
instanceStateService = new InstanceStateService(config.getName(), config.getRegistryCenter());
}
/**
* Initial orchestration master-slave data source.
*/
public void init() {
configurationService.persistShardingConfiguration(config, new Properties());
configurationService.addShardingConfigurationChangeListener(config.getName(), config.getRegistryCenter(), dataSource);
instanceStateService.addShardingState(dataSource);
}
}
......@@ -40,7 +40,7 @@ import java.util.Map;
import java.util.Properties;
/**
* Data configuration service.
* configuration service.
*
* @author caohao
*/
......@@ -48,8 +48,8 @@ public final class ConfigurationService {
private final DataNodeStorage dataNodeStorage;
public ConfigurationService(final CoordinatorRegistryCenter regCenter, final String name) {
dataNodeStorage = new DataNodeStorage(regCenter, name);
public ConfigurationService(final String name, final CoordinatorRegistryCenter regCenter) {
dataNodeStorage = new DataNodeStorage(name, regCenter);
}
/**
......
......@@ -29,6 +29,7 @@ import io.shardingjdbc.orchestration.internal.json.GsonFactory;
import io.shardingjdbc.orchestration.internal.json.ShardingRuleConfigurationConverter;
import io.shardingjdbc.orchestration.reg.base.CoordinatorRegistryCenter;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.recipes.cache.ChildData;
import org.apache.curator.framework.recipes.cache.TreeCache;
......@@ -44,6 +45,7 @@ import java.util.Properties;
*
* @author caohao
*/
@RequiredArgsConstructor
@Getter
public final class InstanceStateService {
......@@ -51,11 +53,6 @@ public final class InstanceStateService {
private final CoordinatorRegistryCenter registryCenter;
public InstanceStateService(final CoordinatorRegistryCenter regCenter, final String name) {
this.registryCenter = regCenter;
this.name = name;
}
/**
* Add sharding state.
*
......
......@@ -28,15 +28,15 @@ import org.apache.curator.framework.recipes.cache.TreeCacheListener;
*/
public final class DataNodeStorage {
private final CoordinatorRegistryCenter regCenter;
private final String name;
private final CoordinatorRegistryCenter regCenter;
private final DataNodePath nodePath;
public DataNodeStorage(final CoordinatorRegistryCenter regCenter, final String name) {
this.regCenter = regCenter;
public DataNodeStorage(final String name, final CoordinatorRegistryCenter regCenter) {
this.name = name;
this.regCenter = regCenter;
nodePath = new DataNodePath(name);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册