如果geode有部分数据而其他数据存在于外部数据源中,我如何从apache geode获取完整数据

How can i get complete data from apache geode if geode is having partial data and other data is present in external datasource

我有一个 apache geode 设置。我已将 geode 与 postgres 的外部数据源连接起来。有一种情况,我在 apache geode 中几乎没有数据,其余的都在 postgres 中。我正在使用查询服务来获取数据,当我触发查询时,我希望 apache geode 应该向我提供其服务器中存在的数据以及来自 postgres 的数据(对于 apache geode 中不存在的数据)。我该如何处理?

我加载了我的缓存,如果 Apache Geode 中不存在,它会加载数据。

''' @服务 public class QuoteLoader 实现 CacheLoader {

private static Logger logger = LoggerFactory.getLogger(QuoteLoader.class);

@Autowired
EmployeeImpl employeeImpl;

@Autowired
EmployeeRepository employeeRepository;

public QuoteLoader() {
}

@Override
public void init(Properties props) {
}

@Override
public void close() {
}

@Override
public Employee load(LoaderHelper<String, Employee> helper) throws CacheLoaderException {
    
    Employee value = null;
    try {
        value = employeeImpl.getEmployeeById(Long.valueOf(helper.getKey()));
    } catch (Exception e) {
        e.printStackTrace();
        logger.error("Error Occured", e);
    }
    return value;
}

} '''

查询引擎只执行 OQL 和 return 结果,在查询执行期间不会调用任何 CacheLoaderCacheLoader 仅在执行 Region.get(key) 操作时出现缓存未命中时才会调用。

如果你仔细想想,这完全有道理......查询是一个任意字符串,可以 return 任何结果(包括 none),所以查询引擎不能如果 Geode 区域中不存在实际条目,则知道该条目是否应该是结果的一部分。