private static Map<String, Map<String, YamlDataSourceParameter>> getSchemaDataSourceParameterMap(final ShardingOrchestrationFacade shardingOrchestrationFacade) { Map<String, Map<String, YamlDataSourceParameter>> result = new LinkedHashMap<>(); for (String each : shardingOrchestrationFacade.getConfigService().getAllShardingSchemaNames()) { result.put(each, DataSourceConverter.getDataSourceParameterMap(shardingOrchestrationFacade.getConfigService().loadDataSourceConfigurations(each))); } return result; }
private static Map<String, RuleConfiguration> getSchemaRules(final ShardingOrchestrationFacade shardingOrchestrationFacade) { Map<String, RuleConfiguration> result = new LinkedHashMap<>(); for (String each : shardingOrchestrationFacade.getConfigService().getAllShardingSchemaNames()) { if (shardingOrchestrationFacade.getConfigService().isShardingRule(each)) { result.put(each, shardingOrchestrationFacade.getConfigService().loadShardingRuleConfiguration(each)); } else { result.put(each, shardingOrchestrationFacade.getConfigService().loadMasterSlaveRuleConfiguration(each)); } } return result; }
private RuleConfiguration createRuleConfiguration(final String shardingSchemaName) { return configurationService.isShardingRule(shardingSchemaName) ? configurationService.loadShardingRuleConfiguration(shardingSchemaName) : configurationService.loadMasterSlaveRuleConfiguration(shardingSchemaName); }
public OrchestrationShardingDataSource(final OrchestrationConfiguration orchestrationConfig) throws SQLException { super(new ShardingOrchestrationFacade(orchestrationConfig, Collections.singletonList(ShardingConstant.LOGIC_SCHEMA_NAME))); ConfigurationService configService = getShardingOrchestrationFacade().getConfigService(); ShardingRuleConfiguration shardingRuleConfig = configService.loadShardingRuleConfiguration(ShardingConstant.LOGIC_SCHEMA_NAME); Preconditions.checkState(null != shardingRuleConfig && !shardingRuleConfig.getTableRuleConfigs().isEmpty(), "Missing the sharding rule configuration on registry center"); dataSource = new ShardingDataSource(DataSourceConverter.getDataSourceMap(configService.loadDataSourceConfigurations(ShardingConstant.LOGIC_SCHEMA_NAME)), new OrchestrationShardingRule(shardingRuleConfig, configService.loadDataSourceConfigurations(ShardingConstant.LOGIC_SCHEMA_NAME).keySet()), configService.loadConfigMap(), configService.loadProperties()); getShardingOrchestrationFacade().init(); }
public OrchestrationMasterSlaveDataSource(final OrchestrationConfiguration orchestrationConfig) throws SQLException { super(new ShardingOrchestrationFacade(orchestrationConfig, Collections.singletonList(ShardingConstant.LOGIC_SCHEMA_NAME))); ConfigurationService configService = getShardingOrchestrationFacade().getConfigService(); MasterSlaveRuleConfiguration masterSlaveRuleConfig = configService.loadMasterSlaveRuleConfiguration(ShardingConstant.LOGIC_SCHEMA_NAME); Preconditions.checkState(null != masterSlaveRuleConfig && !Strings.isNullOrEmpty(masterSlaveRuleConfig.getMasterDataSourceName()), "No available master slave rule configuration to load."); dataSource = new MasterSlaveDataSource(DataSourceConverter.getDataSourceMap(configService.loadDataSourceConfigurations(ShardingConstant.LOGIC_SCHEMA_NAME)), new OrchestrationMasterSlaveRule(masterSlaveRuleConfig), configService.loadConfigMap(), configService.loadProperties()); getShardingOrchestrationFacade().init(); }
private static void startWithRegistryCenter(final YamlProxyServerConfiguration serverConfig, final Collection<String> shardingSchemaNames, final Map<String, YamlProxyRuleConfiguration> ruleConfigs, final int port) throws InterruptedException { try (ShardingOrchestrationFacade shardingOrchestrationFacade = new ShardingOrchestrationFacade(serverConfig.getOrchestration().getOrchestrationConfiguration(), shardingSchemaNames)) { initShardingOrchestrationFacade(serverConfig, ruleConfigs, shardingOrchestrationFacade); GlobalRegistry.getInstance().init(getSchemaDataSourceParameterMap(shardingOrchestrationFacade), getSchemaRules(shardingOrchestrationFacade), shardingOrchestrationFacade.getConfigService().loadAuthentication(), shardingOrchestrationFacade.getConfigService().loadConfigMap(), shardingOrchestrationFacade.getConfigService().loadProperties(), true); initOpenTracing(); ShardingProxy.getInstance().start(port); } }
private SchemaAddedEvent createSchemaAddedEvent(final String shardingSchemaName) { existedSchemaNames.add(shardingSchemaName); return new SchemaAddedEvent(shardingSchemaName, configurationService.loadDataSourceConfigurations(shardingSchemaName), createRuleConfiguration(shardingSchemaName)); }
public ShardingOrchestrationFacade(final OrchestrationConfiguration orchestrationConfig, final Collection<String> shardingSchemaNames) { regCenter = RegistryCenterLoader.load(orchestrationConfig.getRegCenterConfig()); isOverwrite = orchestrationConfig.isOverwrite(); configService = new ConfigurationService(orchestrationConfig.getName(), regCenter); stateService = new StateService(orchestrationConfig.getName(), regCenter); listenerManager = shardingSchemaNames.isEmpty() ? new ShardingOrchestrationListenerManager(orchestrationConfig.getName(), regCenter, configService.getAllShardingSchemaNames()) : new ShardingOrchestrationListenerManager(orchestrationConfig.getName(), regCenter, shardingSchemaNames); }
private static void startWithRegistryCenter(final YamlProxyServerConfiguration serverConfig, final Collection<String> shardingSchemaNames, final Map<String, YamlProxyRuleConfiguration> ruleConfigs, final int port) throws InterruptedException { try (ShardingOrchestrationFacade shardingOrchestrationFacade = new ShardingOrchestrationFacade(serverConfig.getOrchestration().getOrchestrationConfiguration(), shardingSchemaNames)) { initShardingOrchestrationFacade(serverConfig, ruleConfigs, shardingOrchestrationFacade); GlobalRegistry.getInstance().init(getSchemaDataSourceParameterMap(shardingOrchestrationFacade), getSchemaRules(shardingOrchestrationFacade), shardingOrchestrationFacade.getConfigService().loadAuthentication(), shardingOrchestrationFacade.getConfigService().loadConfigMap(), shardingOrchestrationFacade.getConfigService().loadProperties(), true); initOpenTracing(); ShardingProxy.getInstance().start(port); } }
private static Map<String, RuleConfiguration> getSchemaRules(final ShardingOrchestrationFacade shardingOrchestrationFacade) { Map<String, RuleConfiguration> result = new LinkedHashMap<>(); for (String each : shardingOrchestrationFacade.getConfigService().getAllShardingSchemaNames()) { if (shardingOrchestrationFacade.getConfigService().isShardingRule(each)) { result.put(each, shardingOrchestrationFacade.getConfigService().loadShardingRuleConfiguration(each)); } else { result.put(each, shardingOrchestrationFacade.getConfigService().loadMasterSlaveRuleConfiguration(each)); } } return result; }
private static Map<String, Map<String, YamlDataSourceParameter>> getSchemaDataSourceParameterMap(final ShardingOrchestrationFacade shardingOrchestrationFacade) { Map<String, Map<String, YamlDataSourceParameter>> result = new LinkedHashMap<>(); for (String each : shardingOrchestrationFacade.getConfigService().getAllShardingSchemaNames()) { result.put(each, DataSourceConverter.getDataSourceParameterMap(shardingOrchestrationFacade.getConfigService().loadDataSourceConfigurations(each))); } return result; }