加载中...

雪花算法(Snowflake)是 Twitter 开源的分布式唯一 ID 生成算法,用于在无中心协调的多台机器上高效生成全局唯一且大致按时间递增的 64 位整数 ID。
经典布局为:1 位符号位恒为 0;41 位毫秒级时间戳(相对自定义纪元,可用约 69 年);10 位机器标识(可再拆为数据中心 + 机器,支持 1024 个节点);12 位序列号(同一毫秒内每节点可生成 4096 个 ID)。
本地生成、无需访问数据库或发号服务,性能高;ID 趋势递增,对 B+ 树索引友好,避免随机主键导致的页分裂;长度固定 64 位,可直接存为 bigint。
依赖机器时钟,时钟回拨可能产生重复 ID,实现上需等待、报警或借用序列号兜底;机器 ID 的分配需要额外管理(常配合 ZooKeeper 或配置中心)。衍生方案包括美团 Leaf、百度 UidGenerator,以及标准化的 UUIDv7,均沿用「时间戳 + 节点 + 序列」的思路。

登录 后参与讨论
暂无讨论,来发表第一条评论吧