螺竹编程
发布于 2024-05-26 / 6 阅读
0

分布式系统/分布式ID:UUID

UUID,Universally Unique Identifier,即通用唯一识别码。

UUID的格式

UUID的格式为:xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx。

  • M代表版本号,由于UUID的标准实现有5个版本,因此M的范围为1到5。

  • N的值为8、9、a、b中的一个。

UUID的版本

  • 版本1: 严格按照 UUID 定义的每个字段的意义来实现,使用的变量因子是时间戳+时钟序列+节点信息(Mac地址)。twitter的snowflake算法可以看做是UUID版本1的简化版。

  • 版本2: 基本和版本1一致,但是它主要是和 DCE( IBM 的一套分布式计算环境)。但是这个版本在 ietf 中也没有具体描述,反而在DCE 1.1: Authentication and Security Services这篇文档中说到了具体实现。所以这个版本现在很少使用到,并且很多地方的实现也都忽略了它。

  • 版本3: 基于 name 和 namespace 的 hash 实现变量因子,版本3使用的是 md5 进行 hash 算法。

  • 版本4: 使用随机或者伪随机实现变量因子。

  • 版本5: 基于 name 和 namespace 的 hash 实现变量因子,版本5使用的是 sha1 进行 hash 算法。