Package | Description |
---|---|
org.dromara.hutool.core.data.id |
提供各种ID生成
|
Class and Description |
---|
Pid
进程ID单例封装
第一次访问时调用 ManagementFactory.getRuntimeMXBean() 获取PID信息,之后直接使用缓存值 |
SeataSnowflake
Seata改进的雪花算法ID
改进主要是更换了节点和时间戳的位置,以实现在单节点中单调递增 来自:https://github.com/seata/seata/blob/2.x/common/src/main/java/io/seata/common/util/IdWorker.java 相关说明见: https://zhuanlan.zhihu.com/p/648460337 http://seata.io/zh-cn/blog/seata-snowflake-explain.html 符号位(1bit) - 节点标志ID(10bit)- 时间戳相对值(41bit) - 递增序号(12bit) (0) - (0000000000) - (0000000000 0000000000 0000000000 0000000000 0) - (000000000000) |
Snowflake
Twitter的Snowflake 算法
分布式系统中,有一些需要使用全局唯一ID的场景,有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。 |
ULID
ULID(Universally Unique Lexicographically Sortable Identifier)通用唯一词典分类标识符,特性:
与UUID的128位兼容性
每毫秒1.21e + 24个唯一ULID
按字典顺序(也就是字母顺序)排序
规范地编码为26个字符串,而不是UUID的36个字符
使用Crockford的base32获得更好的效率和可读性(每个字符5位)
不区分大小写
没有特殊字符(URL安全)
单调排序顺序(正确检测并处理相同的毫秒)
参考:https://github.com/zjcscut/framework-mesh/blob/master/ulid4j/src/main/java/cn/vlts/ulid/ULID.java
01AN4Z07BY 79KA1307SR9X4MV3
|----------| |----------------|
Timestamp Randomness
48bits 80bits
|
UUID
提供通用唯一识别码(universally unique identifier)(UUID)实现,UUID表示一个128位的值。
|
Copyright © 2025. All rights reserved.