官方文档分布式主键
sharding-jdbc提供了两种主键生成策略UUID、SNOWFLAKE ,默认使用SNOWFLAKE,
还抽离出分布式主键生成器的接口org.apache.shardingsphere.spi.keygen.ShardingKeyGenerator,方便用户自行实现自定义的自增主键生成器。
1.自定义实现ShardingKeyGenerator
public class SimpleShardingKeyGenerator implements ShardingKeyGenerator {
private AtomicLong atomic = new AtomicLong(0);
@Getter
@Setter
private Properties properties = new Properties();
@Override
public Comparable<?> generateKey() {
return atomic.incrementAndGet();
}
@Override
public String getType() {
//声明类型
return "SIMPLE";
}
}
这里仅为了说明如何配置使用自定义主键生成器,简单使用AtomicLong实现。
2.配置分片策略
spring:
shardingsphere:
datasource: ## 略......
sharding:
tables:
t_order:
## 指定 t_order表的 数据分布情况,配置数据节点
actual-data-nodes: m1.t_order_$->{1..2}
## 指定t_order表的主键列,以及主键生成策略为SNOWFLAKE
key-generator:
column: order_id
## 指定分片策略类型
type: SIMPLE
## 指定t_order的分片策略: 设置分片键和分片算法
table-strategy:
inline:
sharding-column: order_id
## 根据order_id % 2 + 1 的结果,指定t_order的实际表
algorithm-expression: t_order_$->{order_id % 2 +1}
指定
spring.shardingsphere.datasource.sharding.tables.<tablename>.key-generator.type=SIMPLE
3.SPI接口配置
添加如下文件META-INF/services/org.apache.shardingsphere.spi.keygen.ShardingKeyGenerator,文件内容为:your_package_name.SimpleShardingKeyGenerator.

4.测试

Sharding-JDBC自定义主键生成
本文介绍Sharding-JDBC中自定义分布式主键生成策略的方法,通过实现ShardingKeyGenerator接口并配置SIMPLE策略,展示了如何使用AtomicLong进行主键生成,并配置分片策略实现数据的分布式存储。
2660

被折叠的 条评论
为什么被折叠?



