📄 sequence 分布式发号器使用
内部资料,请刷新扫码登录
pigcloud
# 背景
全局生成唯一的 ID,适合定义业务流水编号例如
2019100500001
2019100500002
2019100500003
2019100600001
2019100600002
2019100600003
# 依赖
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pigx-common-sequence</artifactId>
</dependency>
# 发号器配置
- 定义切片规则,例如按日期递增
@Configuration
public class SequenceConfig {
/**
* 创建并配置Sequence对象的方法
*
* @param properties 用于构建Sequence的配置属性
* @return 构建完成的Sequence对象
*/
@Bean
public Sequence sequence(BaseSequenceProperties properties) {
return DbSeqBuilder
.create()
.bizName(DateUtil::today)// 定义切片规则,每天从 0 开始切片
.step(1000) // 每次获取数据的个数
.retryTimes(3) // 重试次数
.tableName(properties.getDb().getTableName())
.build();
}
}
# 使用
@Autowired
private Sequence sequence;
sequence.nextNo()
# 配置属性
属性名称 | 默认值 | 描述 |
---|---|---|
pigx.xsequence.db.dbType | MYSQL | 默认数据库类型 |
pigx.xsequence.db.tableName | pigx_sequence | 表名称 |
pigx.xsequence.db.retryTimes | 1 | 重试次数 |