public class IdUtil extends Object
1. 唯一性ID生成器:UUID、ObjectId(MongoDB)、Snowflake
ID相关文章见:http://calvin1978.blogcn.com/articles/uuid.html
| 构造器和说明 |
|---|
IdUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static Snowflake |
createSnowflake(long workerId,
long datacenterId)
创建Twitter的Snowflake 算法生成器
分布式系统中,有一些需要使用全局唯一ID的场景,有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。 |
static String |
fastSimpleUUID()
简化的UUID,去掉了横线,使用性能更好的ThreadLocalRandom生成UUID
|
static String |
fastUUID()
获取随机UUID,使用性能更好的ThreadLocalRandom生成UUID
|
static Snowflake |
getSnowflake(long workerId,
long datacenterId)
获取单例的Twitter的Snowflake 算法生成器对象
分布式系统中,有一些需要使用全局唯一ID的场景,有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。 |
static String |
objectId()
创建MongoDB ID生成策略实现
ObjectId由以下几部分组成: 1. |
static String |
randomUUID()
获取随机UUID
|
static String |
simpleUUID()
简化的UUID,去掉了横线
|
public static String randomUUID()
public static String simpleUUID()
public static String fastUUID()
public static String fastSimpleUUID()
public static String objectId()
1. Time 时间戳。 2. Machine 所在主机的唯一标识符,一般是机器主机名的散列值。 3. PID 进程ID。确保同一机器中不冲突 4. INC 自增计数器。确保同一秒内产生objectId的唯一性。参考:http://blog.csdn.net/qxc1281/article/details/54021882
public static Snowflake createSnowflake(long workerId, long datacenterId)
snowflake的结构如下(每部分用-分开):
0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000第一位为未使用,接下来的41位为毫秒级时间(41位的长度可以使用69年)
参考:http://www.cnblogs.com/relucent/p/4955340.html
workerId - 终端IDdatacenterId - 数据中心IDSnowflakepublic static Snowflake getSnowflake(long workerId, long datacenterId)
snowflake的结构如下(每部分用-分开):
0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000第一位为未使用,接下来的41位为毫秒级时间(41位的长度可以使用69年)
参考:http://www.cnblogs.com/relucent/p/4955340.html
workerId - 终端IDdatacenterId - 数据中心IDSnowflakeCopyright © 2019. All rights reserved.