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 |
objectId()
创建MongoDB ID生成策略实现
ObjectId由以下几部分组成: 1. |
static String |
randomUUID()
获取随机UUID
|
static String |
simpleUUID()
简化的UUID,去掉了横线
|
public static String randomUUID()
public static String simpleUUID()
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 - 数据中心IDSnowflakeCopyright © 2018. All rights reserved.