Как использовать Apache Ignite в качестве кеша JSR 107?
Я понял, что кэш 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
s (пример предоставлен по адресу https://github.com/krichter722/ignite-storage-failure).
Я хотел бы запустить локальную настройку в памяти только со встроенным Ignite. К сожалению, нет ни одного документа "Начало работы" об этом случае использования - только сложные распределенные настройки и конфигурация, не относящаяся к JSR 107/Ignite.
Так как это абсолютно простой вариант использования для инфраструктуры кэширования, это должно быть возможно.
Я использую Apache Ignite 1.7.0.
1 ответ
Проблема в:
config0.setStoreByValue (ложь)
У Ignite нет магазина по справочной поддержке. См. https://github.com/cruftex/jsr107-test-zoo/blob/master/report.md#apache-ignite-1x-test
Конечно, было бы хорошо бросить исключение, когда это делается.