分布式ID

背景

分库分表中,ID容易重复。

解决办法

  • UUID
  • 统一ID序列表
  • 雪花算法

UUID

通用唯一识别码 Universally Unique Identifier

实际应用中使用少,缺点是单纯ID、没有实际意义、32位。

是可以解决ID重复的问题。

MyCat不支持UUID方式。Sharding-Jdbc支持。

 

 

统一ID序列表

从一个统一的序列生成器中获取

可以数据库配置、本地文件读取。

 

 

雪花算法

  • Twitter提出的
  • 一个64位的long型数字
  • 第一位是0 固定的 正数
  • 41位  时间戳 当前时间减去设置的时间的毫秒数 能用69年
  • 5位  机房ID
  • 5位 机器ID
    • (所以做多1024个机器,多了并发有问题。)
  • 12位  序列号
    • (毫秒级时间戳并发是4096个)

问题

  • 时间回调 ID会重复。

 

posted @ 2023-07-22 22:39  CodingOneTheWay  阅读(8)  评论(0编辑  收藏  举报
回到顶部