如何将Apache Ignite用作JSR 107缓存?

时间:2016-12-07 06:20:34

标签: java caching ignite jsr107

我发现JSR 107缓存的配置如下:

private final static CacheManager MANAGER =
             Caching.getCachingProvider().getCacheManager();
private final static Cache<Long, Map<Integer, BufferedImage>> CACHE;
private final static Cache<Long, Map<Integer, ImageIcon>> CACHE_SERIALIZABLE;
static {
    MutableConfiguration<Long, Map<Integer, BufferedImage>> config = new MutableConfiguration<>();
    MutableConfiguration<Long, Map<Integer, ImageIcon>> javaFXConfig = new MutableConfiguration<>();
    for(MutableConfiguration config0 : new MutableConfiguration[] {config, javaFXConfig}) {
        config0.setStoreByValue(false)
                .setStatisticsEnabled(true)
                .setExpiryPolicyFactory(FactoryBuilder.factoryOf(
                        new AccessedExpiryPolicy(new Duration(TimeUnit.HOURS, 1))));
    }
    CACHE = MANAGER.createCache("cache",
            config);
    CACHE_SERIALIZABLE = MANAGER.createCache("cache-serializable",
            javaFXConfig);
}

然而,在添加

之后
<dependencies>
    <dependency>
        <groupId>org.apache.ignite</groupId>
        <artifactId>ignite-core</artifactId>
        <version>1.7.0</version>
    </dependency>
</dependencies>

pom.xml缓存不会在值网站Map中存储任何值(示例在https://github.com/krichter722/ignite-storage-failure处提供)。

我想仅使用嵌入式Ignite运行本地内存设置。不幸的是,关于这个用例并没有一个&#34;入门&#34; - 文档 - 只有复杂的分布式设置和非JSR 107 / Ignite特定的配置。

由于这是缓存框架的绝对最简单的用例,因此必须这样做。

我正在使用Apache Ignite 1.7.0。

1 个答案:

答案 0 :(得分:1)

问题是:

  

config0.setStoreByValue(假)

Ignite没有参考支持商店。见https://github.com/cruftex/jsr107-test-zoo/blob/master/report.md#apache-ignite-1x-test

当然,在尝试这种情况时抛出异常会很好。