📄 sequence 分布式发号器使用
内部资料,请刷新扫码登录
pigcloud
# 背景
全局生成唯一的 ID,适合定义业务流水编号例如
2019100500001
2019100500002
2019100500003
2019100600001
2019100600002
2019100600003
# 依赖
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pigx-common-sequence</artifactId>
</dependency>
# 发号器配置
- 定义切片规则,例如相同日期递增
public class PigxBizName implements BizName {
/**
* 生成名称
*/
@Override
public String create() {
return DateUtil.today();
}
}
/**
* <p>
* 设置发号器生成规则
*/
@Configuration
public class SequenceConfig {
@Bean
public Sequence sequence(DataSource dataSource,
SequenceDbProperties properties) {
return DbSeqBuilder
.create()
.bizName(new BizName())// 定义切片规则
.dataSource(dataSource) // 注入数据源
.step(1000) // 每次获取数据的个数
.retryTimes(3) // 重试次数
.tableName("pigxx_sequence") // 存储表名信息
.build();
}
}
# 使用
@Autowired
private Sequence sequence;
sequence.nextNo()
# 配置属性
属性名称 | 默认值 | 描述 |
---|---|---|
pigx.xsequence.db.dbType | MYSQL | 默认数据库类型 |
pigx.xsequence.db.tableName | pigx_sequence | 表名称 |
pigx.xsequence.db.retryTimes | 1 | 重试次数 |