我应该检查 UUID 冲突吗?

Should I check for UUID collisions?

我正在创建一个程序,我大量使用 UUID 来识别用户和组等内容。考虑到 UUID 已经被占用的可能性极低,我是否应该担心发生冲突的可能性?

这在很大程度上取决于 A) 您的要求 B) 底层实现和 "real" 您的 "library" 出现重复 UUID 的可能性。

示例:我正在开发一个软件堆栈,我们的客户有 运行 几个 "worker machines" W1、W2、... 到 Wn。以及一个或多个"manager machines" M1、M2。

这些工作人员创建 "objects" 由 UUID 标识。我们完全信任 "standard" 库在那里创建这些 UUID - 因此:无需额外检查。

另一方面,那些管理器实例可以看到所有工人;为了避免他们级别上的冲突,我们确保每个工人都有一个 UUID;并且该 UUID 被纳入工作机器上生成的 UUID。

换句话说:如果你的UUID是在一个系统上生成和使用的;那么(没有太多)理由担心。但是当你的 id 需要在更大的上下文中是唯一的时,你可以考虑这种预防措施。