feat: 1.2.0

1. 新增分布式id生成模块
This commit is contained in:
www.byteblogs.com 2023-05-04 22:30:52 +08:00
parent aa4394ff0d
commit a973892d6c
4 changed files with 104 additions and 0 deletions

View File

@ -0,0 +1,24 @@
package com.aizuda.easy.retry.common.core.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* id生成模式
*
* @author www.byteblogs.com
* @date 2023-05-04
* @since 2.0
*/
@AllArgsConstructor
@Getter
public enum IdGeneratorMode {
SNOWFLAKE(1, "雪花算法模式"),
SEGMENT(2,"号段模式");
private final int mode;
private final String desc;
}

View File

@ -0,0 +1,28 @@
package com.aizuda.easy.retry.server.support.generator;
/**
* 分布式Id生成器
*
* @author www.byteblogs.com
* @date 2023-05-04
* @since 2.0
*/
public interface IdGenerator {
/**
* 获取匹配的模式
*
* @param mode 1. 雪花算法(默认算法) 2.号段模式
* @return
*/
boolean supports(int mode);
/**
* 获取分布式id
*
* @param group
* @return id
*/
String idGenerator(String group);
}

View File

@ -0,0 +1,26 @@
package com.aizuda.easy.retry.server.support.generator.id;
import com.aizuda.easy.retry.common.core.enums.IdGeneratorMode;
import com.aizuda.easy.retry.server.support.generator.IdGenerator;
import org.springframework.stereotype.Component;
/**
* 号段模式
*
* @author www.byteblogs.com
* @date 2023-05-04
* @since 2.0
*/
@Component
public class SegmentIdGenerator implements IdGenerator {
@Override
public boolean supports(int mode) {
return IdGeneratorMode.SEGMENT.getMode() == mode;
}
@Override
public String idGenerator(String group) {
return null;
}
}

View File

@ -0,0 +1,26 @@
package com.aizuda.easy.retry.server.support.generator.id;
import com.aizuda.easy.retry.common.core.enums.IdGeneratorMode;
import com.aizuda.easy.retry.server.support.generator.IdGenerator;
import org.springframework.stereotype.Component;
/**
* 雪花算法
*
* @author www.byteblogs.com
* @date 2023-05-04
* @since 2.0
*/
@Component
public class SnowflakeIdGenerator implements IdGenerator {
@Override
public boolean supports(int mode) {
return IdGeneratorMode.SNOWFLAKE.getMode() == mode;
}
@Override
public String idGenerator(String group) {
return null;
}
}