ID生成器
订单ID
- 电商平台:202506041234567890(时间戳 + 随机数,19-20 位)。
- 支付系统:PAY20250604123456789(业务前缀 + 时间戳 + 序号)。
- 微信支付:1589123456789012345(类似 Snowflake 的纯数字 ID)。
- 美团订单:202506041234567890123(时间戳 + 商户 ID + 随机数)。
UUID
| 特性 | GUID/UUID | KSUID | ShortUUID | XID | Snowflake |
|---|---|---|---|---|---|
| 长度 | 36/32字符(不含-) | 27字符 | 22字符 | 20字符 | 19(数字位数) |
| 有序性 | 无序(UUIDv4) | 严格时序 | 无序 | 趋势有序 | 严格时序 |
| 时间精度 | 无(UUIDv4) | 毫秒级 | 无 | 秒级 | 毫秒级 |
| 分布式安全 | 高(随机数) | 高 | 高 | 高 | 高(需配置WorkerID) |
| 性能 | 中等 | 中等 | 较低(编码开销) | 极高 | 极高 |
| 时钟依赖 | 无 | 有(需处理时钟回拨) | 无 | 有(但影响较小) | 强依赖(需严格同步) |
| 适用场景 | 跨系统兼容 | 时序索引 | 短ID、URL | 高并发、短ID | 分布式时序ID |
选择建议
- GUID/UUID: 适用于需要跨系统兼容的场景,特别是当不需要有序性时。
- KSUID: 适合需要严格时序的应用,如事件日志、时间序列数据。
- ShortUUID: 当需要短ID且不关心有序性时的理想选择,适用于URL、短链接等。
- XID: 高并发场景下的短ID选择,适合需要一定有序性的应用。
- Snowflake: 适合分布式系统,特别是需要严格时序和高性能的场景,如大规模分布式应用。