| 程序包 | 说明 |
|---|---|
| com.jn.langx.util.id | |
| com.jn.langx.util.id.snowflake |
| 限定符和类型 | 类和说明 |
|---|---|
class |
AutoIncrementIdGenerator |
class |
Base64IdGenerator
https://github.com/elastic/elasticsearch/tree/master/server/src/main/java/org/elasticsearch/common
|
class |
SimpleIdGenerator
A simple
IdGenerator that starts at 1 and increments by 1 with each call. |
class |
SnowflakeIdGenerator |
class |
UuidGenerator |
class |
VMIdGenerator |
| 限定符和类型 | 类和说明 |
|---|---|
class |
CnblogsSnowflakeIdWorker |
class |
SnowflakeIdWorker
reference: https://github.com/twitter/snowflake
reference: https://www.cnblogs.com/relucent/p/4955340.html
Twitter_Snowflake
SnowFlake的结构如下(每部分用-分开): 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000 1位标识,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0 41位时间截(毫秒级),注意,41位时间截不是存储当前时间的时间截,而是存储时间截的差值(当前时间截 - 开始时间截) 得到的值),这里的的开始时间截,一般是我们的id生成器开始使用的时间,由我们程序来指定的(如下下面程序IdWorker类的startTime属性)。 |
Copyright © 2020. All rights reserved.