java.lang.Object
org.seppiko.snowflake.IdWorker
Seppiko Snowflake algorithm implement.
Snowflake
+----------------------------------------------------------------------------------------------------------------------+
| UNUSED(1BIT) | TIMESTAMP(41BIT) | DATACENTER-ID(5BIT) | WORKER-ID(5BIT) | SERIAL-NO(12BIT) |
+----------------------------------------------------------------------------------------------------------------------+
- Author:
- Leonard Woo
-
Method Summary
Modifier and TypeMethodDescriptionformatId(long id) format snowflake idlongstatic IdWorkergetInstance(long offsetTimestamp) Singleton with synchronizedlonglongvoidinitWorker(long datacenterId, long workerId) Initialization workerlongnextId()generate an unique and incrementing IDvoidsetDatacenterId(long datacenterId) Set data center idvoidsetWorkerId(long workerId) Set worker idtoString()Snowflake settings
-
Method Details
-
getInstance
Singleton with synchronized- Parameters:
offsetTimestamp- Initialize offset timestamp- Returns:
- synchronized object
-
initWorker
public void initWorker(long datacenterId, long workerId) Initialization worker- Parameters:
datacenterId- seesetDatacenterIdworkerId- seesetWorkerId
-
setDatacenterId
public void setDatacenterId(long datacenterId) Set data center id- Parameters:
datacenterId- data center number the process running on, value range: [0,31]
-
setWorkerId
public void setWorkerId(long workerId) Set worker id- Parameters:
workerId- machine or process number, value range: [0,31]
-
nextId
public long nextId()generate an unique and incrementing ID- Returns:
- ID
-
getWaitCount
public long getWaitCount()- Returns:
- the amount of calling
waitNextMillis(long)method
-
getEpochMilli
public long getEpochMilli()- Returns:
- get offset timestamp
-
getSequence
public long getSequence()- Returns:
- get sequence number
-
formatId
format snowflake id- Parameters:
id- ID- Returns:
- ID information
-
toString
Snowflake settings
-