boxmoe_header_banner_img

 

文章导读

ID Generation


avatar
wars 14 8 月, 2025 64

现代应用分布式 ID 生成两种变种:

  1. TwitterSnowflake 以及其变种, 优势是数字可用 Int64 存储, 主要缺点是时钟回拨敏感。
  2. UUID 及其变种, 因为不追求数字存储, 位数更长, 使得低位段设计更好, 一般可以不用担心时钟回拨问题.

Snowflake

  • Twitter Snowflake: 原版, 精度 ms, 导致时钟回拨容忍度毫秒级.
  • Baidu UidGenerator: 高吞吐, 精度 s, 可借用未来时间提升吞吐, 时钟回拨容忍度秒级.
  • Meituan Leaf: 高吞吐, 有中心化模式, 时钟回拨容忍度高.
    • Snowflake 模式: 相对原版增加时钟回拨检测, 切换到备用 WorkerID 规避.
    • Segment 模式: 中心化稳定方案, 无时钟回拨问题, 吞吐量小.
  • Sonyflake: 稳定, 可用年限 174 年, 精度 10ms, 增加回拨检测解决时间回拨但是降低了性能.
变种 精度 可用年限 吞吐 时钟回拨容忍 特性
Twitter Snowflake ms 69年 毫秒级 原版
Baidu UidGenerator s 8.7年 秒级 可借未来时间提升吞吐
Leaf Snowflake ms 69年 回拨检测, 切换备用ID
Leaf Segment ms - - 中心化方案
Sonyflake 10ms 174年 回拨检测, 可用年限高

UUID

  • UUIDV4: 原版, 随机性 128 位字符串.
  • KSUID: 160 位, 相当于在 UUID 基础上, 高位再加时间戳, 兼具排序和随机性.
  • ULID: 128 位, 可兼容 UUID 格式, 高位标识时间.


评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码