You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by "sunlife95 (via GitHub)" <gi...@apache.org> on 2023/08/16 07:18:57 UTC
[GitHub] [shardingsphere] sunlife95 commented on issue #28069: GC count abnormal when service have too many calls
sunlife95 commented on issue #28069:
URL: https://github.com/apache/shardingsphere/issues/28069#issuecomment-1680090893
> Are you using ShardingSphere-JDBC?
yes, and i config with java
`
/**
* 初始化分表规则
*/
private ShardingRuleConfiguration getShardingRuleConfiguration() {
ShardingRuleConfiguration ruleConfiguration = new ShardingRuleConfiguration();
// 分库策略:不分库只分表
ruleConfiguration.setDefaultDatabaseShardingStrategy(new NoneShardingStrategyConfiguration());
// 分表策略:默认不分表
ruleConfiguration.setDefaultTableShardingStrategy(new NoneShardingStrategyConfiguration());
// 默认自增列值生成器
ruleConfiguration.getKeyGenerators().putIfAbsent("myKeyGenerator", new AlgorithmConfiguration("myKeyGenerator", new Properties()));
ruleConfiguration.setDefaultKeyGenerateStrategy(new KeyGenerateStrategyConfiguration("shard_column", "myKeyGenerator");
// 分表规则
ruleConfiguration.getShardingAlgorithms().putIfAbsent(ShardingAlgorithmConsts.HASH_MODULO_ALGORITHM, new AlgorithmConfiguration(ShardingAlgorithmConsts.HASH_MODULO_ALGORITHM, new Properties()));
// 分片规则
ShardingTableRuleConfiguration result = new ShardingTableRuleConfiguration("shard_table", "ds_0.shard_table_${0..7}");
result.setKeyGenerateStrategy(new KeyGenerateStrategyConfiguration("shard_column", "myKeyGenerator"));
result.setTableShardingStrategy(new StandardShardingStrategyConfiguration("shard_column", "myShardAlgorithm"));
ruleConfiguration.getTables().add(result);
return ruleConfiguration;
}
/**
* 初始化单表规则
*/
private SingleRuleConfiguration getSingleRuleConfiguration() {
List<String> singleTableList = Lists.newArrayList();
singleTableList.add("*.*");
return new SingleRuleConfiguration(singleTableList, "ds_0");
}
/**
* 主从分离配置
* @return
* @throws SQLException
*/
private ReadwriteSplittingRuleConfiguration getReadWriteSplittingRuleConfiguration() {
ReadwriteSplittingDataSourceRuleConfiguration dataSourceConfiguration = new ReadwriteSplittingDataSourceRuleConfiguration("ds_0", MASTER_NAME, SLAVE_NAMES, "roundRobin");
//负载均衡算法
Map<String, AlgorithmConfiguration> loadBalanceMaps = new HashMap<>(1);
loadBalanceMaps.put("roundRobin", new AlgorithmConfiguration("ROUND_ROBIN", new Properties()));
return new ReadwriteSplittingRuleConfiguration(Lists.newArrayList(dataSourceConfiguration), loadBalanceMaps);
}
/**
* 初始化sharding 数据源
* @return
* @throws SQLException
*/
@Bean
public DataSource shardingDataSource() throws SQLException {
// 分表规则配置
ShardingRuleConfiguration shardingRuleConfiguration = getShardingRuleConfiguration();
// 读写分离配置
ReadwriteSplittingRuleConfiguration readwriteSplittingRuleConfiguration = getReadWriteSplittingRuleConfiguration();
// 单表配置
SingleRuleConfiguration singleRuleConfiguration = getSingleRuleConfiguration();
// sharding sql显示配置
Properties props = new Properties();
props.put(ConfigurationPropertyKey.SQL_SHOW.getKey(), showSql);
return ShardingSphereDataSourceFactory.createDataSource("ds_0", new ModeConfiguration("Standalone", null), createDataSourceMap(), Lists.newArrayList(shardingRuleConfiguration, readwriteSplittingRuleConfiguration, singleRuleConfiguration), props);
}
`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@shardingsphere.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org