Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 增加分区大小以在hazelcast映射中包含更多数据_Java_Hazelcast - Fatal编程技术网

Java 增加分区大小以在hazelcast映射中包含更多数据

Java 增加分区大小以在hazelcast映射中包含更多数据,java,hazelcast,Java,Hazelcast,我正在使用hazelcast作为缓存集群 在mysql中,我有三个用于三个表的映射存储。每个表有100000条记录。 我正在启动三个hazelcast实例,用不同的映射将这些表加载到我的映射中。 但问题是 当我启动first instance并调用load all for first table时,它将加载所有100000条目,但当我调用second instance以相同的过程加载第二个表格时,它将加载49449条目,而在第三个实例中,它仅加载33249个条目 我使用三种不同的java代码来加

我正在使用hazelcast作为
缓存集群

在mysql中,我有三个用于三个表的映射存储。每个表有100000条记录。 我正在启动三个
hazelcast
实例,用
不同的映射将这些表加载到我的映射中。
但问题是

当我启动first instance并调用load all for first table时,它将加载所有
100000
条目,但当我调用second instance以相同的过程加载第二个表格时,它将加载
49449
条目,而在第三个实例中,它仅加载33249个条目

我使用三种不同的java代码来加载这些表。 我的分区大小默认值为
271
我一直在寻找错误,但没有显示错误,加载的数据始终与上面解释的相同。
您能帮我解决问题吗。

调用MapLoader.loadAllKeys()时,您能记录每个MapLoader/MapStore实现加载的密钥数吗


也许这能说明一些情况。如果此处的数字不是100k,则问题不在HZ以内

因此,至少我们知道您能够从数据库中获得正确数量的密钥;这是一个坚实的开端。“每个表的hazelcast实例”是什么意思?他们不是要组成一个集群,还是你给了他们不同的分区组或其他东西?我为每个实例编写了一个jabva主程序,以表示它像节点结构一样,所以thsi集群中有三个节点,正如你在配置实现中看到的,它是为每个地图存储定义的,所以这三个节点位于三个不同的节点上portsMY的问题是,当我查询一个数据少于100k的映射时,该键在映射中不存在,它给了我null,但它应该已经去数据库获取记录并在映射中更新。public Set loadAllKeys(){Set allKeys=null;try{allKeys=new HashSet();ResultSet rs=con.createStatement().executeQuery(String.format(“从城市中选择id”);while(rs.next()){Long key=rs.getLong(1);allKeys.add(key);}}catch(Exception ex){}finally{}return allKeys;}我的代码在这里