类 SequenceUtil

java.lang.Object
cn.gomro.commons.utils.SequenceUtil

public class SequenceUtil extends Object
  • 字段详细资料

    • Epoch

      private static final long Epoch
      另请参阅:
    • WorkerIdBits

      private static final long WorkerIdBits
      另请参阅:
    • DataCenterIdBits

      private static final long DataCenterIdBits
      另请参阅:
    • SequenceBits

      private static final long SequenceBits
      另请参阅:
    • WorkerIdShift

      private static final long WorkerIdShift
      另请参阅:
    • DataCenterIdShift

      private static final long DataCenterIdShift
      另请参阅:
    • TimestampShift

      private static final long TimestampShift
      另请参阅:
    • SequenceMask

      private static final long SequenceMask
      另请参阅:
    • MaxWorkerId

      public static final long MaxWorkerId
      另请参阅:
    • MaxDataCenterId

      public static final long MaxDataCenterId
      另请参阅:
    • LastTimestamp

      private static long LastTimestamp
    • sequence

      private long sequence
    • workerId

      private final long workerId
    • dataCenterId

      private final long dataCenterId
  • 构造器详细资料

    • SequenceUtil

      public SequenceUtil(long dataCenterId, long workerId)
  • 方法详细资料

    • nextId

      public long nextId()
      获取序列
      返回:
      生成的序列
    • tilNextMillis

      private long tilNextMillis(long lastTimestamp)
      保证返回的毫秒数在参数之后(阻塞到下一个毫秒,直到获得新的时间戳)
      参数:
      lastTimestamp - 最后时间戳
      返回:
      下一个毫秒数
    • timeGen

      private long timeGen()
      获得系统当前毫秒数
      返回:
      当前毫秒数
    • getWorkerId

      public static long getWorkerId(long dataCenterId, long maxWorkerId)
      获取机器标识
      参数:
      dataCenterId - 数据中心ID
      maxWorkerId - 最大允许的机器ID
      返回:
      机器ID
    • getDataCenterId

      public static long getDataCenterId(long maxDatCenterId) throws UnknownHostException, SocketException
      获取数据中心标识
      参数:
      maxDatCenterId - 最大允许的数据中心ID
      返回:
      数据中心ID
      抛出:
      UnknownHostException
      SocketException