有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Hazelcast IMap:keySet()与localKeySet()的比较

我在一个有5个以上节点的集群中使用Hazelcast 3.4。我有一个地图,其中关键点是复杂的对象(不是基本类型)。在任何时候,地图的大小都可能在200K左右

我知道映射中的条目/值将存储在不同的分区中。然而,我想知道以下几点

  1. Hazelcast集群中的每个成员是维护给定映射中所有键集的信息,还是只维护其拥有的分区中这些键的子集的信息

二,;3是后续问题

  1. keySet()是分布式操作吗?(即,它肯定会涉及集群环境中的远程机器通信)

  2. localKeySet()是分布式操作吗

关于这个问题的更多背景:

我需要通过调用由第三方程序公开的服务cachedKeys(K[]keys),定期向第三方程序通知我程序中hazelcast映射中存在的密钥

选项1:从群集中任何一个节点调用keySet(),以检索映射中的所有键,然后从该节点调用cachedKeys(K[]键)服务

选项2:从群集中的每个节点调用localKeySet(),以标识每个节点拥有的本地密钥,然后从每个节点调用cachedKey(K[]密钥)

以上答案将帮助我选择正确的选项


共 (1) 个答案

  1. # 1 楼答案

    成员不维护全局密钥集。每个成员只知道本地条目。因此,keySet()是一个分布式操作,它会命中所有成员,而localKeySet()只是一个本地操作。我希望这些信息能对你有所帮助

    问题在谷歌小组中得到了回答:积分:Jaromir Hamala