UUID
目录
UUID 是唯一标识符.
- 没有绝对唯一, 但可能性忽略不计.
103 万亿个版本 4 UUID 中找到重复项的概率是十亿分之一
- 通常是 8-4-4-4-12 格式.
0f8fad5b-d9cb-469f-a165-70867728950e
- 有很多的版本标准. csharp 的 Guid 就是实现之一
- v 4 版本是现在最常用的版本
Guid.NewGuid()
- v 7 版本最新兼容 v 4 格式, 同时支持排序! 理论上可以完全替代 v 4
Guid.CreateVersion7()
- api 的相关讨论 Extend System.Guid with a new creation API for v7 · Issue #103658 · dotnet/runtime · GitHub
- 默认使用
DateTime.UtcNow
, 没有时区信息 - 建议使用
DateTimeOffset.UtcNow
的时区信息来解决全球分布式 id 的问题, 可以让全球的数据排序的时候更准确. - 如果想指定时区, 在 aspnetcore 通过依赖注入的方式就实现
ITimeProvider
接口, 然后注入_timeProvider
, 使用Guid.CreateVersion7(_timeProvider.GetUtcNow()
- v 4 版本是现在最常用的版本
相关链接