首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果UUID4是在设备而不是服务器上生成的,那么它有多独特?

如果UUID4是在设备而不是服务器上生成的,那么它有多独特?
EN

Stack Overflow用户
提问于 2015-11-05 05:55:27
回答 1查看 1.6K关注 0票数 2

这个问题在一般意义上回答了它,它没有指定如果UUID生成不集中会发生什么。

我最近看到了一种架构,所有设备(1M+、ios和安卓)都在生成UUID4密钥(使用它们自己的生成器函数/库),而在服务器数据库中标记同步时的密钥是唯一的。我担心,由于大约一百万台设备将试图在本地产生碰撞,碰撞的可能性将高于上述问题中所述的机会。

我以前使用过集中式UUID,但对于这种类型的分布式系统,我是新手,所以我使用质数生成器的类比,在不同的环境中并行运行,这将使最终结果不再是素数/唯一的。如果我的理解有误,请纠正我。

此外,请分享任何好的文章,关于gotcha和使用UUID在分布式环境中。

编辑:这个与Python UUID生成相关的答案讨论的是碰撞和使用UUID1而不是UUID4。我想知道是否有任何文档可以证实android和ios设备上wrt的随机性。此外,我应该如何计算/估计这种碰撞的概率。

EN

回答 1

Stack Overflow用户

发布于 2015-11-05 05:59:59

UUID的全部意义是,它只是-普遍的独特。

UUID通常基于设备的MAC地址和时间戳等内容。每秒产生几个UUID的一百万台设备永远不会有任何碰撞。

除非苹果( Apple )或谷歌( Google )搞砸了它们生成UUID的实现,否则你没什么好担心的。

同样,UUID的全部意义在于您不需要一个中央的单一服务器来生成所有的is。

您所链接的问题的许多答案包含对有关UUID算法的详细信息的引用。这个问题与UUID生成的集中化没有任何关系。

更新--由于焦点是UUID4,下面是维基百科关于UUID4复制概率的文章的摘录

为了更好地看待这些数字,估计一个人每年被陨石击中的几率是170亿,4这意味着概率约为0.00000000006 (6×10−11),相当于在一年内产生数十亿UUID并有一个重复的几率。换句话说,在接下来的100年中,只有在每秒生成10亿UUID之后,创建一个副本的概率才会达到50%左右。 然而,只有当UUID使用足够的熵生成时,这些概率才成立。否则,重复的可能性可能会大大提高,因为统计的分散度可能较低。在分布式应用程序需要唯一标识符的情况下,即使合并了来自多个设备的数据,UUID也不会发生冲突,因此每个设备上使用的种子和生成器的随机性必须对应用程序的生命周期是可靠的。如果这不可行,RFC4122建议使用命名空间变体。

根据我对iOS的经验,iOS正在使用UUID4。鉴于上述情况,我不担心任何碰撞。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33537606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档