articleList

20-彻底掌握分布式 ID 生成算法Snowflake原理

2025/03/13 posted in  ShardingJDBC
Tags: 

  • 什么是雪花算法Snowflake - twitter用scala语言编写的高效生成唯一ID的算法

    • 优点
      • 生成的ID不重复
      • 算法性能高
      • 基于时间戳,基本保证有序递增
  • 计算机的基础知识回顾

    • bit与byte
      • bit(位):电脑中存储的最小单位,可以存储二进制中的0或1
      • byte(字节):一个byte由8个bit组成
    • 常规64位系统里面java数据类型存储字节大小
      • int:4 个字节
      • short:2 个字节
      • long:8 个字节
      • byte:1 个字节
      • float:4 个字节
      • double:8 个字节
      • char:2 个字节
    • 科普:数据类型在不同位数机器的平台下长度不同(怼面试官的严谨性)
      • 16位平台 int 2个字节16位
      • 32位平台 int 4个字节32位
      • 64位平台 int 4个字节32位
  • 雪花算法生成的数字,long类,所以就是8个byte,64bit

    • 表示的值 -9223372036854775808(-2的63次方) ~ 9223372036854775807(2的63次方-1)
    • 生成的唯一值用于数据库主键,不能是负数,所以值为0~9223372036854775807(2的63次方-1)
      image-20211123180239485