public class SnowFlakeIdWork extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
private long |
datacenterId
数据标识id部分
|
private static long |
datacenterIdBits
数据中心标识位数
|
private static long |
datacenterIdShift
数据中心ID左移17位
|
private static long |
lastTimestamp
上次生产id时间戳
|
private static long |
maxDatacenterId
数据中心ID最大值
|
private static long |
maxWorkerId
机器ID最大值
|
private long |
sequence
0,并发控制
|
private static long |
sequenceBits
毫秒内自增位
|
private static long |
sequenceMask |
private static long |
timestampLeftShift
时间毫秒左移22位
|
private static long |
twepoch
时间起始标记点,作为基准,一般取系统的最近时间(一旦确定不能变动)
|
private long |
workerId |
private static long |
workerIdBits
机器标识位数
|
private static long |
workerIdShift
机器ID偏左移12位
|
| 构造器和说明 |
|---|
SnowFlakeIdWork() |
SnowFlakeIdWork(long workerId,
long datacenterId)
获取id
|
| 限定符和类型 | 方法和说明 |
|---|---|
protected static long |
getDatacenterId(long maxDatacenterId)
数据id表示部分
|
protected static long |
getMaxWorkerId(long datacenterId,
long maxWorkerId)
获取MaxWorkId
|
long |
nextId()
获取下一个id
|
private long |
tilNextMillis(long lastTimestamp) |
private long |
timeGen() |
private static final long twepoch
private static final long workerIdBits
private static final long datacenterIdBits
private static final long maxWorkerId
private static final long maxDatacenterId
private static final long sequenceBits
private static final long workerIdShift
private static final long datacenterIdShift
private static final long timestampLeftShift
private static final long sequenceMask
private static long lastTimestamp
private long sequence
private final long workerId
private final long datacenterId
public SnowFlakeIdWork()
public SnowFlakeIdWork(long workerId,
long datacenterId)
workerId - 工作机器iddatacenterId - 序列号public long nextId()
private long tilNextMillis(long lastTimestamp)
private long timeGen()
protected static long getMaxWorkerId(long datacenterId,
long maxWorkerId)
datacenterId - maxWorkerId - protected static long getDatacenterId(long maxDatacenterId)
maxDatacenterId - Copyright © 2022. All rights reserved.