在分布式系统中,唯一标识符(ID)是保证数据一致性、去重、路由与追踪的基础@mikechen
数据库自增ID(集中式自增)
由单一关系型数据库表的自增主键、或序列生成。

优点:实现简单、确保全局唯一且按插入顺序有序,便于调试与人工观察。
缺点:单点瓶颈与可用性受限。
扩展性差,高并发下可能成为性能瓶颈,跨库或跨分片场景复杂。
UUID(通用唯一识别码)
使用标准算法生成128位ID(如:UUID v4随机或v1基于时间与节点)。

优点:无需中心化服务即可生成,跨节点冲突概率极低,易于分布式部署。
缺点:长度大,存储与索引开销高。
随机型UUID导致索引写放大与性能下降。
可读性差;按时间排序性差(除v1或v6)。
雪花算法(Snowflake)
Twitter提出的基于时间戳、机器ID与序列号的64位有序ID生成方案。

优点:生成速度快、单节点高并发支持、ID整体有递增性便于数据库索引。
无需中心化协调(只需保证机器ID唯一)。
缺点:需分配与管理机器ID,时钟回拨处理复杂。
ID包含时间戳可能泄露生成时间;设计需避免序列溢出。
数据库或强一致性服务分配
如ZooKeeper、etcd/Redis自增:利用分布式协调服务或集中缓存分配区间或自增ID。

优点:可保证严格唯一与有序性,便于管理与监控。
在某些实现下支持高可用(如etcd集群)。
缺点:依赖协调服务的可用性与性能。
可能引入额外延迟,实现与部署复杂度较高,水平扩展仍需谨慎设计。
一般小体量、简单系统,可以直接用 数据库自增 即可,后期可以迁移到Snowflake。
中大型单机房系统,优先考虑 号段模式 或 Snowflake。
mikechen睿哥
10年+一线大厂架构实战经验,就职于阿里、淘宝等一线大厂,操盘多个亿级大厂核心项目。