Files
video_server/src/main/java/com/sqx/sharding/StandardShardingStrategyConf.java
2025-01-03 20:58:43 +08:00

19 lines
763 B
Java

package com.sqx.sharding;
import org.apache.shardingsphere.api.sharding.standard.PreciseShardingAlgorithm;
import org.apache.shardingsphere.api.sharding.standard.PreciseShardingValue;
import java.util.Collection;
public class StandardShardingStrategyConf implements PreciseShardingAlgorithm<Long> {
@Override
public String doSharding(Collection<String> availableTargetNames, PreciseShardingValue<Long> shardingValue) {
// 根据ID对5取模来确定表名
long tableIndex = shardingValue.getValue() % 5;
for (String tableName : availableTargetNames) {
if (tableName.endsWith(String.valueOf(tableIndex))) {
return tableName;
}
}
throw new IllegalArgumentException();
}
}