public class SnowflakeIdWorker extends Object
| Modifier and Type | Field and Description |
|---|---|
private long |
datacenterId
数据标识 ID 部分
|
private long |
datacenterIdBits |
private long |
datacenterIdShift |
private InetAddress |
inetAddress |
private long |
lastTimestamp
上次生产 ID 时间戳
|
private long |
maxDatacenterId |
private long |
maxWorkerId |
private long |
sequence
并发控制
|
private long |
sequenceBits
毫秒内自增位
|
private long |
sequenceMask |
private long |
timestampLeftShift
时间戳左移动位
|
private long |
twepoch
时间起始标记点,作为基准,一般取系统的最近时间(一旦确定不能变动)
|
private long |
workerId |
private long |
workerIdBits
机器标识位数
|
private long |
workerIdShift |
| Constructor and Description |
|---|
SnowflakeIdWorker() |
SnowflakeIdWorker(InetAddress inetAddress) |
SnowflakeIdWorker(long twepoch) |
SnowflakeIdWorker(long workerId,
long datacenterId)
有参构造器
|
| Modifier and Type | Method and Description |
|---|---|
protected long |
getDatacenterId(long maxDatacenterId)
数据标识id部分
|
protected InetAddress |
getInetAddress() |
private InetAddress |
getLocalHost() |
protected long |
getMaxWorkerId(long datacenterId,
long maxWorkerId)
获取 maxWorkerId
|
long |
nextId()
获取下一个 ID
|
protected long |
tilNextMillis(long lastTimestamp) |
protected long |
timeGen() |
private long twepoch
private final long workerIdBits
private final long datacenterIdBits
private final long maxWorkerId
private final long maxDatacenterId
private final long sequenceBits
private final long workerIdShift
private final long datacenterIdShift
private final long timestampLeftShift
private final long sequenceMask
private final long workerId
private final long datacenterId
private long sequence
private long lastTimestamp
private InetAddress inetAddress
public SnowflakeIdWorker()
public SnowflakeIdWorker(long twepoch)
public SnowflakeIdWorker(InetAddress inetAddress)
public SnowflakeIdWorker(long workerId,
long datacenterId)
workerId - 工作机器 IDdatacenterId - 序列号private InetAddress getLocalHost()
protected InetAddress getInetAddress()
protected long getMaxWorkerId(long datacenterId,
long maxWorkerId)
protected long getDatacenterId(long maxDatacenterId)
public long nextId()
protected long tilNextMillis(long lastTimestamp)
protected long timeGen()
Copyright © 2023. All rights reserved.