开始 - ID 生成器概述

分布式 ID 生成器解决的是一个基础但高频的问题:在多服务、多实例、多数据库甚至多机房环境中,如何生成全局唯一、可用、性能足够高的 ID。它既可以作为数据库主键,也可以作为订单号、消息 ID、链路追踪 ID 或业务流水号。

最初系统可能只依赖数据库自增主键。单库单表时,这个方案简单可靠;但当业务拆库拆表、服务水平扩展、写入量上升或需要跨区域部署时,单点自增就会暴露出性能瓶颈、可用性风险和数据合并冲突。分布式 ID 的价值,是把“生成唯一标识”从局部数据库能力提升为平台能力。

本章会先建立课程问题背景:为什么 ID 不只是一个数字,为什么顺序性会影响数据库索引,为什么订单号可能还需要可读和防猜,为什么消息系统更重视去重和追踪。不同场景对 ID 的要求不同,后续方案选型必须围绕这些要求展开。

学习这门课时,不要急着把雪花算法当成唯一答案。UUID、数据库自增、Redis、雪花算法和号段模式各有适用边界。课程会按“简单可用 -> 性能提升 -> 去中心化 -> 高可用治理”的路径推进,让你看到每种方案为什么出现、解决了什么问题、又引入了什么新问题。

完成本章后,你应当能描述分布式 ID 系统的目标:全局唯一是底线,趋势递增影响写入性能,高可用决定业务连续性,生成速度影响核心链路,安全性和可读性则由业务场景决定。

章节