0%

算法之分布式ID-雪花算法

[TOC]

分布式ID的特点

  • 全局唯一性
    • 不能出现有重复的ID标识,这是基本要求。
  • 递增性
    • 确保生成ID对于用户或业务是递增的。
  • 高可用性
    • 确保任何时候都能生成正确的ID。
  • 高性能性
    • 在高并发的环境下依然表现良好。

雪花算法

1.第一位 占用1bit,其值始终是0,没有实际作用。

2.时间戳 占用41bit,精确到毫秒,总共可以容纳约69年的时间。

3.工作机器id 占用10bit,其中高位5bit是数据中心ID,低位5bit是工作节点ID,做多可以容纳1024个节点。

4.序列号 占用12bit,每个节点每毫秒0开始不断累加,最多可以累加到4095,一共可以产生4096个ID。

每个节点每毫秒可以产生 4096 个 ID, 最多支持 1024 个节点,所以,极限是每毫秒产生 400 w 个 ID。

组成部分(64bit)

参考

分布式ID神器之雪花算法简介