Package uno.xifan.id.generator.snowflake
Class SnowflakeIdGenerator
java.lang.Object
uno.xifan.id.generator.snowflake.SnowflakeIdGenerator
- All Implemented Interfaces:
IdGenerator
Snowflake ID生成器实现
-
Constructor Details
-
SnowflakeIdGenerator
public SnowflakeIdGenerator(long workerId) 创建一个新的雪花算法ID生成器实例通过指定工作节点ID来初始化生成器。工作节点ID用于确保在分布式环境中生成的ID的唯一性。
- Parameters:
workerId- 工作节点ID,取值范围[0, 1023]- Throws:
IllegalArgumentException- 当workerId超出有效范围时抛出
-
-
Method Details
-
next
public long next()生成下一个唯一的ID该方法是线程安全的,通过同步机制确保在多线程环境下的正确性。 生成的ID由以下部分组成: - 41位时间戳 - 10位工作节点ID - 12位序列号
- Returns:
- 生成的唯一ID
- Throws:
RuntimeException- 当检测到系统时钟回退时抛出
-
generate
Description copied from interface:IdGenerator生成一个唯一标识符。 每个实现类都应该根据其特定的生成策略来实现此方法。- Specified by:
generatein interfaceIdGenerator- Returns:
- 生成的唯一标识符,具体类型由实现类决定
-
idType
Description copied from interface:IdGenerator获取当前生成器的标识符类型此方法用于标识生成器使用的具体ID生成策略。每个实现类都应该 返回一个对应其生成策略的IdType枚举值。
- Specified by:
idTypein interfaceIdGenerator- Returns:
- 当前生成器的标识符类型
-