Соблюдает ли Hazelcast конфигурацию кэша по умолчанию
В документации Hazelcast есть несколько кратких ссылок на кэш с именем "default" - например, здесь: http://docs.hazelcast.org/docs/3.6/manual/html-single/index.html
Позже, здесь есть еще одно упоминание о конфигурации кэша по умолчанию: http://docs.hazelcast.org/docs/3.6/manual/html-single/index.html
Я хотел бы иметь возможность настроить параметры по умолчанию, которые наследуются при создании кэшей. Например, учитывая следующий фрагмент конфигурации:
<cache name="default">
<statistics-enabled>true</statistics-enabled>
<management-enabled>true</management-enabled>
<expiry-policy-factory>
<timed-expiry-policy-factory expiry-policy-type="ACCESSED" time-unit="MINUTES" duration-amount="2"/>
</expiry-policy-factory>
</cache>
Я хотел бы пройти следующий тест:
@Test
public void defaultCacheSettingsTest() throws Exception {
CacheManager cacheManager = underTest.get();
Cache cache = cacheManager.createCache("foo", new MutableConfiguration<>());
CompleteConfiguration cacheConfig = (CompleteConfiguration) cache.getConfiguration(CompleteConfiguration.class);
assertThat(cacheConfig.isManagementEnabled(), is(true));
assertThat(cacheConfig.isStatisticsEnabled(), is(true));
assertThat(cacheConfig.getExpiryPolicyFactory(),
is(AccessedExpiryPolicy.factoryOf(new Duration(TimeUnit.MINUTES, 2l)))
);
}
У Ehcache есть "шаблонный" механизм, и я надеюсь, что у меня будет похожее поведение.
1 ответ
Hazelcast поддерживает настройку с подстановочными знаками. Ты можешь использовать <cache name="*">
для всех Cache
s, чтобы использовать одну и ту же конфигурацию или применить другие шаблоны к группе Cache
конфигурации, как вы хотите.
Обратите внимание, что поскольку вы уже используете декларативную конфигурацию Hazelcast для настройки вашего Cache
s, вы должны использовать CacheManager.getCache
вместо createCache
чтобы получить Cache
пример: Cache
s создан с CacheManager.createCache(..., Configuration)
игнорировать декларативную конфигурацию, так как они настроены явно с Configuration
передано в качестве аргумента.