标签: uuid

ConcurrentHashMap 上的 Java containsKey() 对于映射中存在的 UUID 键返回 false

我正在使用类型的对象

Map<Long, Map<UUID, OperationEntry>> stepOperations = new ConcurrentHashMap<>(); 
Run Code Online (Sandbox Code Playgroud)

来控制一些操作的执行。我有一个 Kafka 消息处理程序方法,在收到有关操作状态更改的消息后,需要根据传递的 UUID 在 stepOperations 映射中查找并更新记录的状态。

UUID 类未被覆盖(标准 java.util.UUID)。

如果地图中存在密钥“3102869c-7653-4fb7-ad47-a629b5cbac90”(如屏幕截图所示),那么从 containsKey 方法获得意外结果的原因可能是什么?

这是代码中有问题的部分:

   private OperationEntry getOperationLogEntry(UUID requestId) {
        return stepOperations.values().stream()
            .filter(value -> value.containsKey(requestId))
            .map(value -> value.get(requestId))
            .findFirst()
            .orElse(null);
    }
Run Code Online (Sandbox Code Playgroud)

使用 ConcurrentHashMap 类是因为它保证支持多线程处理。传入的 Kafka 消息由由 16 个线程组成的线程池进行处理。

内部地图的存在可能是这里的潜在问题吗?

简单的测试例如

        Map<UUID, String> testMap = new java.util.concurrent.ConcurrentHashMap<>();
        UUID key = UUID.randomUUID();
        testMap.put(key, "testValue");
        if (testMap.containsKey(key)) {
            System.out.println(testMap.get(key));
        }
Run Code Online (Sandbox Code Playgroud)

按预期工作

java uuid concurrenthashmap

1
推荐指数
1
解决办法
108
查看次数

我是否需要UUID才能为iPhone编程?

我是否需要UUID才能为iPhone编程?我被告知我需要这个,我怎么能得到一个UUID

iphone uuid

0
推荐指数
2
解决办法
4484
查看次数

Ruby UUID和唯一性,用于ID

我需要一个6字符的字母数字ID,用于我的rails应用程序,它将呈现给系统的用户,并且在我的系统中的所有对象实例中必须是唯一的.我不指望超过几千个对象实例,所以6个字符远远超过我真正需要的.

此时我在我的Rails应用程序中使用UUIDTools gem来生成一个uuid.我应该使用哪种UUIDTools生成方法,以及结果uuid的哪一端应该从中获取6个字符,以保证唯一性?

例如,如果我生成ef1cf087-95c9-4868-bd95-cea950a52b58,我想ef1cf0从它的前面使用,还是a52b58从后端使用?

......作为旁注/问题:我是不是错了?有没有更好的办法?

ruby uuid uniqueidentifier

0
推荐指数
1
解决办法
1967
查看次数

我可以让uuid更随机吗?

我有一个程序将消息分派给不同的进程.我需要平衡负载,但不是非常精确,几乎相同的数字是可以的.由于每条消息都有一个uuid字段,我想用uuid值来做.在我测试了uuid随机性之后,我发现它并不像我经历的那样随机.我有最后一个和第一个约80%的差异.这是不可接受的,所以我想知道是否有一种算法可以使它更随机.

这是我的测试代码.

import uuid
from collections import Counter

COUNT = 3000

def b(length):
    holder = []
    for i in xrange(COUNT):
        holder.append(str(uuid.uuid4())[:length])
    return Counter(holder)

def num(part_count):
    sep = 0xffffffffffffffffffffffffffffffff / part_count
    parts = []
    for i in xrange(COUNT):
#        str_hex = str(uuid.uuid4())[:4]
        num = int(uuid.uuid4().hex,16)
        divide = num/sep
        if divide == part_count:
            divide = part_count - 1
        parts.append(divide)
    return Counter(parts)

if __name__ == "__main__":
    print num(200) 
Run Code Online (Sandbox Code Playgroud)

我得到这样的输出:

Counter({127L: 29, 198L: 26, 55L: 25, 178L: 24, 184L: 24, 56L: 23, 132L: 23, …
Run Code Online (Sandbox Code Playgroud)

python algorithm uuid load-balancing

0
推荐指数
2
解决办法
1264
查看次数

警告:已加载的库检测到UUID不匹配

自从更新到5.0.1后我就得到了这个

警告:在加载的库中检测到UUID不匹配 - 在磁盘上是:/ Users/alfredjunco/Library/Developer/Xcode/iOS DeviceSupport/5.0.1(9A405)/Symbols/System/Library/Frameworks/CoreLocation.framework/CoreLocation

我也得到了这个,但我不知道它是否重要

无法加载符号文件:警告:无法读取/Library/MobileSubstrate/MobileSubstrate.dylib的符号(找不到文件).警告:没有本地发现的MobileSubstrate.dylib副本,从远程设备上的内存中读取.这可能会减慢调试会话的速度.

iphone xcode uuid ios4

0
推荐指数
1
解决办法
1169
查看次数

比较uuids是否相等(在php中)

在PHP中检查2个uuids是否正确的正确方法是什么?我需要检查2个具有uuid值的变量并根据结果进行操作.我尝试过strcmp()但是没有产生正确的值.

谢谢!mmiz

php uuid

0
推荐指数
1
解决办法
358
查看次数

哪个版本的UUID有0作为第三部分的第一个字符?

我有一个看起来像这样的UUID:d30d7840-8f7f-012f-e231-1231390f85a2.

这是哪个版本/类型的UUID?我正在查看版本位(第3部分的第一个字符),但无法确定如何在零处识别它.

uuid version ios

0
推荐指数
1
解决办法
87
查看次数

将String转换为UUID格式的字符串

有没有可用于将纯字符串转换为UUID格式字符串的实用方法?

例如:

普通字符串: f424376fe38e496eb77d7841d915b074

UUID格式化字符串: f424376f-e38e-496e-b77d-7841d915b074

我只是想在不使用任何java逻辑的情况下转换为UUID格式,因此寻找java.lang,java.util或Apache等软件包中可用的预定义实用程序.

java string formatting uuid utility

0
推荐指数
1
解决办法
2万
查看次数

如何使用postgresql触发器设置UUID

我有一个名为的表students从外部源填充.数据带有复合键,然后我想用它来生成UUID uuid_generate_v5.我现在正在这样做

UPDATE students SET id = uuid_generate_v5(uuid_ns_url(), CONCAT(composite1, composite2));
Run Code Online (Sandbox Code Playgroud)

当有一行插入此表时,我有兴趣将其移动到触发器中.我该怎么做呢?

database postgresql uuid triggers

0
推荐指数
1
解决办法
1312
查看次数

如何将UUID缩短到特定长度?

我想将UU​​ID用于数据库记录,但如果我将其用于URL,我希望它是5到8个字符.

我知道我需要使用SecureRandombase64,但我如何指定我需要的长度?

ruby uuid

0
推荐指数
2
解决办法
2266
查看次数