Class SnowflakeIdGenerator

java.lang.Object
icu.congee.id.generator.snowflake.SnowflakeIdGenerator
All Implemented Interfaces:
IdGenerator

public class SnowflakeIdGenerator extends Object implements 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

      public Long generate()
      Description copied from interface: IdGenerator
      生成一个唯一标识符。 每个实现类都应该根据其特定的生成策略来实现此方法。
      Specified by:
      generate in interface IdGenerator
      Returns:
      生成的唯一标识符,具体类型由实现类决定
    • idType

      public IdType idType()
      Description copied from interface: IdGenerator
      获取当前生成器的标识符类型

      此方法用于标识生成器使用的具体ID生成策略。每个实现类都应该 返回一个对应其生成策略的IdType枚举值。

      Specified by:
      idType in interface IdGenerator
      Returns:
      当前生成器的标识符类型