在分布式系统中,全局唯一ID是核心需求之一(如订单ID、日志ID、分布式数据库主键等),需满足唯一性、高可用性、高性能、有序性(可选)、可扩展性等要求。以下是常见解决方案的详细解析:
一、UUID(Universally Unique Identifier)
UUID是通用唯一标识符,通过特定算法生成128位(通常显示为32位16进制数,分5段,如550e8400-e29b-41d4-a716-446655440000
)的唯一标识。
1. 原理与版本
UUID有多个版本,核心是通过“唯一性因子”(时间、机器标识、随机数、哈希值等)组合生成:
- v1:基于时间戳(精确到100纳秒)+ 机器MAC地址,保证唯一性但暴露MAC地址(隐私风险)。
- v4:完全基于随机数(122位随机位),重复概率极低(约1/10³⁶),最常用。
- v3/v5:基于“命名空间+字符串”的哈希值(v3用MD5,v5用SHA-1),适用于需要“相同输入生成相同UUID”的场景(如URL映射)。
2. 优缺点
- 优点:
- 完全去中心化,无需依赖任何中心节点,生成逻