Package icu.congee.id.generator.custom
Class TimeBasedRandomIdGenerator
java.lang.Object
icu.congee.id.generator.custom.TimeBasedRandomIdGenerator
- All Implemented Interfaces:
IdGenerator
基于时间戳和随机数的ID生成器
该类用于生成64位长整型ID,其中高32位为时间戳(相对于自定义纪元),低32位为随机数。 这种设计可以保证ID按时间递增,同时在同一时间点生成的ID具有唯一性。
- Since:
- 2024-05-01
- Version:
- 1.0
- Author:
- ixiongdi
-
Constructor Details
-
TimeBasedRandomIdGenerator
public TimeBasedRandomIdGenerator()
-
-
Method Details
-
next
public static long next()生成一个新的基于时间和随机数的ID该方法创建并返回一个64位长整型ID,其结构如下: - 高32位:当前时间(秒级)减去自定义纪元时间 - 低32位:随机数
- Returns:
- 新生成的64位长整型ID
-
generate
Description copied from interface:IdGenerator生成一个唯一标识符。 每个实现类都应该根据其特定的生成策略来实现此方法。- Specified by:
generatein interfaceIdGenerator- Returns:
- 生成的唯一标识符,具体类型由实现类决定
-
idType
Description copied from interface:IdGenerator获取当前生成器的标识符类型此方法用于标识生成器使用的具体ID生成策略。每个实现类都应该 返回一个对应其生成策略的IdType枚举值。
- Specified by:
idTypein interfaceIdGenerator- Returns:
- 当前生成器的标识符类型
-