跳转到内容

分布式ID

1. 主键ID

分库分表后原有主键ID失效,需要改造主键ID。

2. 方案1

jdk中自带的UUID

  • 好处:
    • 不用引入额外的jar
  • 坏处:
    • 更占用内存。
    • 不适合作为mysql的主键。
      • 无序性会导致磁盘随机IO、数据叶分裂;
      • 普通索引需要存储主键值,会导致B+树增高,IO次数变多;
    • 基于mac的地址算法会导致mac地址泄漏。

3. 方案2

雪花算法

4. 方案3

号段模式——美团的Leaf

5. 参考

集群高并发环境下,如何保证分布式唯一全局ID生成?

make it come true