爱陪小樱桃

导航

 

在我们的开发过程中,都会用到分布式ID,比如:分布式锁,幂等,数据库的唯一主键,都需要分布式ID。

1.数据库的自增ID:

利用数据库的auto_increment.生成唯一ID。
优点:简单,ID有序,索引效率高。
缺点:单点故障,扩展性差(分库分表困难)
适用场景:单机或者简单的主从架构系统。

2.UUID:

基于MAC地址,时间戳,随机数生成的128位字符串。
优点:全局唯一,无需中心化服务。
缺点:无序导致索引效率低,存储空间大(36字符)
适用场景:日志跟踪,非核心业务。

我们有的项目:有些伙伴会直接用它方便,如果业务性比较强的,就在后边加个个性化标识。

3.雪花算法:

原理:64位结构=时间戳41位+机器ID 10位+序列号12位。
优点:高性能,趋势递增
缺点:依赖时钟同步(时钟回拨会导致重复)
适用场景:分布式高并发系统(如电商订单)
其实我们现在的系统很多就是雪花算的:如流水号等等。

4.Redis分布式ID

原理:利用INCR原子操作,生成递增的ID。
优点:性能优于数据库,天然有序,高性能,可扩展性强。
缺点:依赖Redis可用性。
适用场景:按日生成的流水号:(订单号=日期+自增)

posted on 2025-08-21 22:22  cherry小樱桃  阅读(6)  评论(0)    收藏  举报