Hazelcast从loadAllKeys为每个集合键调用loadAll

Hazelcast从loadAllKeys为每个集合键调用loadAll,hazelcast,Hazelcast,为什么要为每个键调用loadAll?现在我使用loadAll作为加载 @Override public Map<Integer, Office> loadAll(Collection<Integer> keys) { log.debug("---------OfficeLoader::loadAll:" + keys); Office office = officeRepository.find(keys.iterator().next());

为什么要为每个键调用loadAll?现在我使用loadAll作为加载

@Override
public Map<Integer, Office> loadAll(Collection<Integer> keys) {
    log.debug("---------OfficeLoader::loadAll:" + keys);
    Office office = officeRepository.find(keys.iterator().next());        
    Map<Integer, Office> result = new HashMap<>();
    result.put(office.getId(),office);
    return result;
}
@覆盖
公共地图加载全部(集合键){
log.debug(“-----------OfficeLoader::loadAll:”+键);
Office=officepository.find(key.iterator().next());
映射结果=新的HashMap();
result.put(office.getId(),office);
返回结果;
}

你为什么不用load来代替呢?loadAll用于在一个请求中加载所有条目,不应该为每个键调用它,但我猜您没有太多键

它的工作原理是:假设您有271个分区和2710条记录,让我们假设所有记录在分区之间分布均匀


然后,您只需调用loadAllKeys(),然后就可以调用271个loadAll(keys),其中每个“keys”包含要加载的特定分区的10个键。

我的数据库中有100万条mysql表记录,我只想加载10000条。我尝试使用LoadAll和一个包含10000个键的集合键。但它却加载了所有100万条记录。为什么设置keySet=newhashset();对于(长i=0;i<10000;i++){keySet.add(i);}map.loadAll(keySet,true);