功能介绍
基于koca进行拓展,提供多种id的生成策略方便应用侧进行集成。
1、uuid
2、sequence_redis (基于redis生成序号,废弃koca的sequence实现)
3、leaf_snowflake (雪花算法(koca反馈暂时有问题,基于特定版本)
koca主键:http://koca.szkingdom.com/docs/Back_End_Framework/Development_Boot/Id_Generator/Id_Generator.html
引用说明
maven配置
<dependency>
<groupId>com.kingengine.kems.sdk</groupId>
<artifactId>kems-sdk-idgen</artifactId>
</dependency>
yml配置
koca:
idgenerator:
# defaultStrategy: uuid
# defaultStrategy: sequence_redis
defaultStrategy: leaf_snowflake
#美团 leaf 雪花算法配置,需依赖 zookeeper 注册中心
leaf:
name: com.sankuai.leaf.opensource.test
snowflake:
enable: true #开关
address: 10.201.40.51 # zookeeper ip地址
prot: 2181 # zookeeper 端口
简单示例
主键生成器
@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = {RedisSequenceConfiguration.class})
@EnableAutoConfiguration
public class IdGenTest {
@Resource
private IdGenerator idGenerator;
@Test
public void generate() {
System.out.println(idGenerator.getId("demo"));
}
}
业务序号生成器
@RunWith(SpringRunner.class)
@SpringBootTest
public class IdGenTest {
@Test
public void generate() {
System.out.println(UniqueCodeUtils.getUniqueCode("test", 2));
}
}