java – UUID随机生成有重复的

前端之家收集整理的这篇文章主要介绍了java – UUID随机生成有重复的前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用以下函数生成UUID
UUID.randomUUID().toString()

在Prod中,我们有50个服务器(应用程序服务器 – 每个都是一个JVM),并且在这些服务器中的请求,作为第一步,我们生成一个基本上唯一标识事务的UUID.

我们观察到的是,在服务器6和服务器11中,生成的UUID至少每天匹配10到15个消息,这是奇怪的,因为给定负载即每天约100万txns,这个UUID在同一天内重复很奇怪.

这是我们迄今所做的
1)验证应用程序日志 – 没有发现任何东西在那里,所有的日志都是正常的
2)试图在测试环境中复制这个问题,在生产中和50台服务器相似的负载 – 但这并没有发生在测试环境
3)检查应用程序逻辑 – 这似乎不是一个问题,因为除了6和11之外的所有其他48个服务器具有相同代码库的副本是正常工作的,它们正在生成每txn唯一的UUID.

到目前为止,我们没有能够跟踪这个问题,我的问题基本上是否有JVM级别的缺失或UUID参数,我们需要为这个问题设置一个问题?

请建议.

谢谢,
Deepesh

解决方法

有时间,我相信你会发现罪魁祸首.在此期间,我认为值得提拔来回答:

您正在多个位置生成随机UUID.如果您没有找到其他错误,请考虑在一个位置生成所有伪随机UUID,或者生成真正的随机UUID

所以创建一个UUID服务器.这只是一个流失了UUID的块的过程.每个块可能包含10,000个(或任何适当的)UUID.该过程将在每个块写入磁盘后验证该块不包含重复项.

创建另一个分发UUID块的过程.也许这只是一个Web服务,它在获取请求时返回一个未使用的块.事务服务器请求一个块,然后在创建事务时消耗这些UUID.当服务器使用大部分分配的UUID时,它会请求另一个块.

猜你在找的Java相关文章