单库下一般使用Mysql自增ID,但是分库分表后,会造成不同分片上的数据表主键会重复。
UUID
性能非常高,没有网络消耗,但无序的字符串,不具备趋势自增特性,UUID太长,不易于存储。
Redis发号器
利用Redis的INCR和INCRBY来实现,性能比Mysql强劲,但需要占用网络资源,增加系统复杂度。
Snowflake雪花算法
twitter开源的分布式ID生成算法,代码实现简单、不占用宽带、数据迁移不受影响,生成的id
中包含有时间戳,所以生成的id按照时间递增,依赖系统时钟(多台服务器时间一定要一样)
本文内容转载自小滴课堂。