| 程序包 | 说明 |
|---|---|
| com.jn.langx.distributed.session | |
| com.jn.langx.util.id | |
| com.jn.langx.util.id.snowflake |
| 限定符和类型 | 接口和说明 |
|---|---|
interface |
SessionIdGenerator<E> |
| 限定符和类型 | 类和说明 |
|---|---|
class |
AutoIncrementIdGenerator |
class |
Base64IdGenerator
https://github.com/elastic/elasticsearch/tree/master/server/src/main/java/org/elasticsearch/common
|
class |
NanoidGenerator |
class |
PrefixedIdGenerator<E> |
class |
ShortUuidGenerator |
class |
SimpleIdGenerator
A simple
IdGenerator that starts at 1 and increments by 1 with each call. |
class |
SnowflakeIdGenerator |
class |
UlidGenerator |
class |
UuidGenerator |
class |
VMIdGenerator |
class |
XidGenerator |
| 限定符和类型 | 方法和说明 |
|---|---|
IdGenerator<E> |
PrefixedIdGenerator.getDelegate() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
PrefixedIdGenerator.setDelegate(IdGenerator<E> delegate) |
| 构造器和说明 |
|---|
PrefixedIdGenerator(IdGenerator<E> delegate,
PrefixSupplier supplier) |
PrefixedIdGenerator(IdGenerator<E> delegate,
PrefixSupplier supplier,
String separator) |
| 限定符和类型 | 类和说明 |
|---|---|
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 © 2022. All rights reserved.