Class SonyflakeIdGenerator

java.lang.Object
uno.xifan.id.generator.sonyflake.SonyflakeIdGenerator
All Implemented Interfaces:
IdGenerator

public class SonyflakeIdGenerator extends Object implements IdGenerator
Sonyflake ID生成器的Java实现

Sonyflake是Sony公司开源的分布式ID生成算法,其结构如下: - 39位时间戳(精确到10ms,以自定义纪元为基准) - 8位工作机器ID - 8位序列号 - 8位备用位(默认为0)

特点: 1. 时间戳占39位,以10ms为单位,可使用174年 2. 工作机器ID占8位,最多支持256个节点 3. 序列号占8位,每10ms最多生成256个ID 4. 预留8位备用位,可用于业务扩展

Author:
ixiongdi
  • Constructor Details

    • SonyflakeIdGenerator

      public SonyflakeIdGenerator()
  • Method Details

    • 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:
      当前生成器的标识符类型