分布式ID(2):雪花算法生成ID

1 雪花算法简介

这种方案大致来说是一种以划分命名空间(UUID也算,由于比较常见,所以单独分析)来生成ID的一种算法,这种方案把64-bit分别划分成多段,分开来标示机器、时间等,比如在snowflake中的64-bit分别表示如下图(图片来自网络)所示:

41-bit的时间可以表示(1L<<41)/(1000L*3600*24*365)=69年的时间,10-bit机器可以分别表示1024台机器。如果我们对IDC划分有需求,还可以将10-bit分5-bit给IDC,分5-bit给工作机器。这样就可以表示32个IDC,每个IDC下可以有32台机器,可以根据自身需求定义。12个自增序列号可以表示2^12个ID,理论上snowflake方案的QPS约为409.6w/s,这种分配方式可以保证在任何一个IDC的任何一台机器在任意毫秒内生成的ID都是不同的。

雪花算法ID优点:

  • 毫秒数在高位,自增序列在低位,整个ID都是趋势递增的。

相关推荐

  1. 雪花算法生成分布式主键ID

    2024-01-20 07:08:01       23 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-20 07:08:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-20 07:08:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-20 07:08:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-20 07:08:01       18 阅读

热门阅读

  1. React与Vue:前端框架的比较

    2024-01-20 07:08:01       34 阅读
  2. React16源码: React中的reconcileChildren的源码实现

    2024-01-20 07:08:01       27 阅读
  3. 每日coding

    2024-01-20 07:08:01       29 阅读
  4. spark的jdbc接口,类似于hiveserver2

    2024-01-20 07:08:01       31 阅读
  5. JVM介绍

    JVM介绍

    2024-01-20 07:08:01      28 阅读
  6. 【LeetCode】哈希表精选5题

    2024-01-20 07:08:01       38 阅读
  7. 1.19 力扣中等图论

    2024-01-20 07:08:01       34 阅读
  8. JVM的即时编译(JIT)优化原理:加速程序的执行

    2024-01-20 07:08:01       28 阅读
  9. 网络 - 网速很慢一定是网不好引起的吗?

    2024-01-20 07:08:01       33 阅读