加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – UUID随机生成有重复的

发布时间:2020-12-14 19:27:15 所属栏目:Java 来源:网络整理
导读:我使用以下函数来生成UUID UUID.randomUUID().toString() 在Prod中,我们有50个服务器(应用程序服务器 – 每个都是一个JVM),并且在这些服务器中的请求,作为第一步,我们生成一个基本上唯一标识事务的UUID. 我们观察到的是,在服务器6和服务器11中,生成的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时,它会请求另一个块.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读