分布式 ID 生成方案有哪些?
发布于
一、UUID
- 优点:本地生成,无网络开销,唯一。
- 缺点:无序,索引效率低;太长。
二、数据库自增
- 优点:简单,有序。
- 缺点:单库瓶颈;分库后不全局唯一。
三、号段模式
- 从数据库批量获取 ID 段(如 1-1000),在内存中使用。
- 优点:性能高,减少数据库压力。
- 缺点:服务重启可能断号。
四、Snowflake(雪花算法)
- 64 位:1 符号位 + 41 时间戳 + 10 机器 ID + 12 序列号。
- 优点:趋势递增,性能高,全局唯一。
- 缺点:依赖时钟,时钟回拨会重复。
五、Leaf(美团)
- 号段模式 + Snowflake 双模式。
- 解决时钟回拨问题。
六、Redis
- incr 生成,性能高。
- 需保证 Redis 高可用。