全局唯一id方案

  1. mysql自增

    优点:简单

    缺点:扩容复杂,业务增大时数据迁移困难

  1. 基于时间戳和随机字符串

    优点:对人比较友好

    缺点:随机数生成不易控制

  2. UUID

    优点:简单粗暴,性能好,全球唯一,基本不会有性能问题

    缺点:占用空间大,无序,查询效率低

    变种:COMB算法

  3. redis自增

    优点:简单,易实现,数字ID天然有序

    缺点:依赖redis,考验redis性能

  4. Twitter-Snowflake算法

    优点:

    • 不依赖数据库,性能高,单机有序
    • 灵活,支持多节点部署

    缺点:

    • 无法做到全局递增
  5. 微信id生成算法

    万亿级调用下的优雅:微信序列号生成器架构设计及演变

    • 类似于批量生成多个id,性能好,避免每次访问库的压力
    • 可能会有单点故障,服务重启ID不连续
  6. 百度 - UidGenerator

    • 雪花算法变种
  7. Leaf——美团点评分布式ID生成系统- 美团技术团队

  8. wuid一个比 UUID 快百倍的唯一 ID 生成器

  9. vesta

  10. MongoDB — ObjectId