Files
go-utils/id
2025-06-04 15:52:46 +08:00
..
2025-06-04 15:52:46 +08:00
2025-06-04 15:52:46 +08:00
2025-06-04 15:52:46 +08:00
2025-06-04 15:52:46 +08:00
2025-06-04 15:52:46 +08:00
2025-06-04 15:52:46 +08:00
2025-06-04 15:52:46 +08:00
2025-06-04 15:52:46 +08:00
2025-06-04 15:52:46 +08:00

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: 适合分布式系统,特别是需要严格时序和高性能的场景,如大规模分布式应用。