有时候业务需要生成唯一标识符,但又不能依赖于数据库中自动递增的字段产生唯一ID,比如多表同一字段需要统一一个唯一ID,此时我们就需要用程序来生成一个唯一的全局ID。
UUID
- UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。
- UUID是一个128bit的数字,也可以表现为32个16进制的字符(每个字符0-F的字符代表4bit),中间用"-"分割。
- 时间戳+UUID版本号: 分三段占16个字符(60bit+4bit),
- Clock Sequence号与保留字段:占4个字符(13bit+3bit),
- 节点标识:占12个字符(48bit),
UUID的唯一缺陷在于生成的结果串会比较长。
public static void main(String[] args) {
String fileN

本文介绍了在Java中如何生成全局唯一的标识符,避免依赖数据库自增字段。首先讲解了UUID的基本原理和特性,尽管其保证了唯一性,但生成的ID较长。接着详细阐述了Twitter的SnowFlake算法,该算法通过时间戳、自增序列号和工作机器ID确保唯一性,解决了UUID长度过长的问题。
最低0.47元/天 解锁文章

685

被折叠的 条评论
为什么被折叠?



